[英]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.