我正在尝试打印结果集,但它没有打印任何内容。有人可以告诉我有什么问题吗? 我使用的是 Oracle 11g、JDK 1.7 和 ojdbc6.jar。 提前致谢。 我执行的代码如下。
import java.sql.*;
public class database {
public static void main( String args[]){
System.out.println("---Connecting to Oracle---");
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch( ClassNotFoundException e){
System.out.println( e );
}
System.out.println("---JDBC Registered---");
String URL = "jdbc:oracle:thin:admin/nihtij34@localhost:1521:XE";
String user = "admin";
String pwd = "nihtij34";
try{
Connection con = DriverManager.getConnection(URL,user,pwd);
Statement s = con.createStatement();
s.executeQuery ("select * from seat where doj= '1-01-2016' ");
System.out.println("---QUERY EXECUTED---");
ResultSet rs1 = s.getResultSet();
while(rs1.next()){
System.out.println( rs1.getString("tno"));
System.out.println( rs1.getString("doj"));
System.out.println( rs1.getString("sl"));
System.out.println( rs1.getString("ac3"));
System.out.println( rs1.getString("ac2"));
}
s.close();
con.close();
}
catch(SQLException e){
System.out.println(" NOT CONNECTED\n"+e);
}
}
}
我得到的输出如下:
---Connecting to Oracle---
---JDBC Registered---
---QUERY EXECUTED---
我在 Oracle 中尝试了查询,它返回了以下结果。
SQL> select * from seat where doj='1-01-2016';
TNO DOJ SL AC3 AC2
---------- ---------- ---------- ---------- ----------
11042 1-01-2016 10 10 10
12163 1-01-2016 10 10 10
12321 1-01-2016 10 10 10
12322 1-01-2016 10 10 10
12323 1-01-2016 10 10 10
12324 1-01-2016 10 10 10
12615 1-01-2016 10 10 10
12616 1-01-2016 10 10 10
12841 1-01-2016 10 10 10
12842 1-01-2016 10 10 10
12951 1-01-2016 10 10 10
TNO DOJ SL AC3 AC2
---------- ---------- ---------- ---------- ----------
12952 1-01-2016 10 10 10
12 rows selected.
有人可以告诉我出了什么问题吗? 提前致谢。
最佳答案
行s.executeQuery
已经返回一个ResultSet,您应该使用它,而不是随后调用s.getResultSet()
。 JavaDoc这也表明第二次调用将返回 null。我很惊讶您在 rs1.next()
上没有收到 NullPointerException。
另外,顺便说一句,将 Connection 和 Statement 变量移到 try-catch block 之外并在 finally
block 中关闭它们,或者使用 Java 7尝试使用资源构建。
关于Java ResultSet 为空但实际上不应该为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32626587/