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/