java - 运行时的代码打开了 jdbc 连接,但没有打印表数据。这段代码有什么问题?

标签 java eclipse oracle jdbc

package com.cg.tr.jdbc;
import java.sql.Connection; 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.cg.trg.utilself.DBUtilSelf;

 public class MenuBase {
public static void main(String[] args) {
 Connection connection = DBUtilSelf.openConnection();
 System.out.println("Connection opened");
 String sql="SELECT BNUM FROM BOOK";

try
 {
    Statement st=connection.createStatement();
    ResultSet rs=st.executeQuery(sql);
    System.out.println("Book details");
    while(rs.next())
    {
        System.out.print(rs.getInt("BNUM")+"\t");
        System.out.print(rs.getString("BNAME")+"\t");
        System.out.print(rs.getFloat("BPRICE")+"\t");
        System.out.print(rs.getString("BAUTHOR")+"\t");
        System.out.println();
     }

}
  catch(SQLException e)
  {
    e.printStackTrace();
  }
  finally
  {
    DBUtilSelf.closeConnection();
  } 

  }
 }

此代码在 eclipse 上运行时不会打印 oracle 中表中的数据。 输出为:

连接已打开 图书详情

它不会进入 while 循环。也不会生成任何异常。我已确保表中的列名称写入正确。但它仍然没有给出输出

包 com.cg.trg.utilself;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtilSelf 
 {

 static Connection connection;
 static String url;
 static String username;
 static String password;

 static
 {
    //load properties file...
    Properties prop =new Properties();
    FileInputStream fis;

    try
    {
    fis=new FileInputStream("jdbc.properties");
    prop.load(fis);
    }
   catch(IOException e)
    {
System.out.println("Problem while loading properties file:"+e.getMessage());

     }

 url=prop.getProperty("url");
 username=prop.getProperty("username");
password=prop.getProperty("password");

 }
 public static Connection openConnection()
 {
try
  {
   connection=DriverManager.getConnection(url,username,password);
  }
 catch(SQLException e)
 {
  System.out.println("Error while opening connection"+e.getMessage());
 }
return connection;
 }

public static void closeConnection()
{
    if(connection!=null)
    {
    try
    {
    connection.close();
    }
     catch(SQLException e)
     { 
    System.out.println("Error while closing connection:"+e.getMessage());
    }
    }
  }
  }

这是 DBUtilSelf.java 文件

最佳答案

代码是正确的,但唯一的问题是在sql中创建表后,没有提交。在sql中使用commit查询将更改保存在数据库中,以便可以通过jdbc看到它们。

关于java - 运行时的代码打开了 jdbc 连接,但没有打印表数据。这段代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436697/

相关文章:

java - Eclipse 项目名称更改

Eclipse - 设置 `Run` 后如何再次显示 `Always run in background` 窗口

sql - Oracle中如何选择前100行?

java - Swing 堆栈跟踪没有失败的行信息

javafx Intellij IDEA 索引用户控件

java - 我们如何在 eclipseLink 中使用自己的集合进行延迟加载?

sql-server - 从 SQL Server 导出表以导入到 Oracle 10g

java sybase 连接与无效数据库名称

eclipse - 从 Eclipse 启动 JBoss

database - 我如何用 pl/sql 中的记录项初始化数组?