尝试使用Java在sqlite数据库中创建表时出现空指针异常
我有一个简单的Java程序,可以连接到一个空的sqlite数据库。我正在尝试创建一个表,但在尝试执行查询时得到一个空指针异常尝试使用Java在sqlite数据库中创建表时出现空指针异常,java,sql,database,sqlite,Java,Sql,Database,Sqlite,我有一个简单的Java程序,可以连接到一个空的sqlite数据库。我正在尝试创建一个表,但在尝试执行查询时得到一个空指针异常 我确保所有需要的罐子都在那里 我使用调试器查找有问题的代码行。下面是我代码的第51行。另一行相关代码是Statement类的第113行,如有必要,我可以将其发布以供参考 我确保我的声明是正确草签的 堆栈跟踪: java.lang.NullPointerException at org.sqlite.Stmt.execute(Stmt.java:113)
- 我确保所有需要的罐子都在那里
- 我使用调试器查找有问题的代码行。下面是我代码的第51行。另一行相关代码是Statement类的第113行,如有必要,我可以将其发布以供参考
- 我确保我的声明是正确草签的
java.lang.NullPointerException
at org.sqlite.Stmt.execute(Stmt.java:113)
at SqliteConnection.main(SqliteConnection.java:52)
您的
connect
方法创建一个连接对象,然后。。。立即关闭自己。这不是您使用try/finally的方式。(最后的意思是:在执行尝试退出关联的try块时执行此操作。这并不意味着:如果从此以后整个代码库中的任何地方发生异常,请执行此块)
提示:异常包含5个有用的东西:类型、消息、堆栈跟踪和因果链。印刷所有难以做到的事情;所以不要尝试。如果您不知道如何处理异常,可以将其向前抛出(只需将抛出异常
放在您的主方法上),或者如果您不能/不希望这样做,则抛出新的RuntimeException(e)与e.printStackTrace()
相比,code>是一种优越得多的方法
更好的实施示例:
import java.sql.*;
公共类SqliteConnection{
公共静态连接connect()引发SQLException
{
连接conn=DriverManager.getConnection(url);
System.out.println(“已建立到SQLite的连接”);
返回连接;
}
公共静态void main(字符串[]args)引发SQLException
{
尝试(连接c=connect();语句stmt=c.createStatement();){
String sql=“创建表Car(CarID INT不为NULL,制造商文本,类型文本,FuelEfficiency REAL,主键(CarID));”;
stmt.execute(sql);
}
}
}
请注意上面的示例:
java.lang.NullPointerException
at org.sqlite.Stmt.execute(Stmt.java:113)
at SqliteConnection.main(SqliteConnection.java:52)