【发布时间】:2019-10-13 05:13:49
【问题描述】:
我的简单 sql 语句的 executeQuery 出现 NullPointerException;我认为问题来自与 sqlite 的连接,但我无法弄清楚......
我的java方法:
public Connection connect() throws SQLException {
Connection conn = null;
try {
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:sqlite:sakila.db.sqlite3";
conn = DriverManager.getConnection(url);
System.out.println("Connection to SQLite has been established.");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM FILM LIMIT 10";
stmt.executeQuery(sql);
return conn;
}
这是控制台的结果
Connection to SQLite has been established.
Exception in thread "main" java.lang.NullPointerException
at org.sqlite.Stmt.executeQuery(Stmt.java:121)
at Connect.connect(Connect.java:33)
at Main.main(Main.java:10)
提前致谢
【问题讨论】:
-
Hrmm... 你试过调试吗?大多数时候,对于这种类型的错误,人们通过调试发现它。附带说明一下,您似乎没有在 catch 块中处理
NullPointerException异常。在需要的地方为其添加一个 catch 块。 -
@Sometowngeek 您通常不应该捕获
NullPointerException,因为它通常表明您的代码中存在错误。 -
@MarkRotteveel 我认为 Exception e 是您要避免的。
-
@Sometowngeek NullPointerExceptions 通常表示需要修复的错误,捕获它们会忽略这些问题,应该避免。不要捕获 NullPointerException,而是修复根本原因。