類似的問題到: Strange problem with JDBC, select returns null 但人們並沒有要求這一點。Oracle JDBC選擇與WHERE返回0
我的代碼:
public int myMethod(String day) throws SQLException{
String sql = "Select count(*) from MyTable WHERE someColumn = " + day;
Connection connection = ConnFactory.get();
PreparedStatement prepareStatement = null;
ResultSet resultSet = null;
int ret = -1;
try{
prepareStatement = connection.prepareStatement(sql);
resultSet = prepareStatement.executeQuery(sql);
if(resultSet.next()){
ret = resultSet.getInt(1);
}
}
catch(SQLException sqle){
// closing statement & ResultSet, log and throw exception
}
finally{
// closing statement & ResultSet
}
ConnFactory.kill(connection);
return ret;
}
此代碼總是返回0。我嘗試執行之前登錄SQL和嘗試在運行的SQLDeveloper,並得到正確的值(100)。 當我刪除WHERE時,sql = "Select count(*) from MyTable
查詢返回表中所有行的數量。 我用ojdbc-14.jar的Oracle 10g(從行家回購最後一個版本)和Java 6
如果它返回0,則沒有與您的WHERE匹配的行。乾淨利落。在客戶端(例如SQLDeveloper)中運行相同的查詢並查看結果是什麼。 – 2009-10-01 14:10:27