[英]Java + SQL Server: Resultset is null?
我不熟悉将java与数据库一起使用,并且一直在尝试以下代码:
public int getDateDiff(int OrderID) {
Connection conn = DBConnection.getConnection();
Integer diff = null;
String getdiffSQL = "SELECT DATEDIFF( DAY , StartDate , EndDate ) FROM CarOrder WHERE OrderID = ?;";
try {
PreparedStatement pstm = conn.prepareStatement(getdiffSQL);
pstm.setInt(1, OrderID);
ResultSet rs = pstm.executeQuery(getdiffSQL);
while (rs.next()) {
diff = rs.getInt(1);
}
}
catch (SQLException ex) {
System.out.println("Error: " + ex.getMessage());
}
return diff;
}
我尝试运行此但遇到
“线程“ AWT-EventQueue-0”中的异常java.lang.NullPointerException”
并且return diff为null。 请告诉我这有什么问题以及如何解决。
PreparedStatement#executeQuery()
不带参数,因此您不应传递查询字符串。 而是使用以下模式:
PreparedStatement pstm = conn.prepareStatement(getdiffSQL);
pstm.setInt(1, OrderID);
ResultSet rs = pstm.executeQuery(); // no parameter
使用JDBC时,这是一个相当普遍的错误,部分原因是Statement#executeQuery()
确实将查询字符串作为参数。 像MkYong这样的教程添加了与OP相同的错误,并且很容易理解为什么这个错误如此普遍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.