我想要做的是从 SQL 语句中获取一个 ResultSet,然后我可以从中派生某些值。我似乎遇到的麻烦是准备在这一行发生的准备好的语句。
String sql = "SELECT " + dataState + " FROM " + table + whereState + ";";
java.sql.PreparedStatement prep = conn.prepareStatement(sql); // Error here
我已经检查过变量 conn 不为空。语句中的所有值都不为空,堆栈跟踪显示了这一点。
java.lang.NullPointerException
at org.sqlite.PrepStmt.(PrepStmt.java:37)
at org.sqlite.Conn.prepareStatement(Conn.java:231)
at org.sqlite.Conn.prepareStatement(Conn.java:224)
at org.sqlite.Conn.prepareStatement(Conn.java:213)
在 org.utilities.storagemethods.SQLiteMethod.load(SQLiteMethod.java:223)
在 org.utilities.DataManager.load(DataManager.java:97)
在 org.utilities .Test.main(Test.java:21)
sql 语句的打印显示它给出了这个。
SELECT testString, testBool, testObj FROM testTable WHERE testInt=?;
您可以从给定的字符串中确定值。
我想不通的是我做错了什么,如果你对我使用的 sqlite 系统感到好奇,你可以在这里找到主页:http ://www.zentus.com/ sqlitejdbc/
提前感谢您对此的任何帮助。我完全被难住了。
注意:为了节省资源,我缓存了我的连接,并在以后重新使用它们。当我尝试重新获得连接时,它工作得很好。有没有办法可以缓存它们,或者每次我想使用它时都需要加载它们?