我正在尝试连接到位于项目目录中的数据库并从中获取数据,但是出现Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
错误。
这是我的代码:
public static Connection ConnectDB(){
Connection conn = null;
Statement stmt = null;
try{
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:database01s.sqlite");
JOptionPane.showMessageDialog(null, "Connected");
conn.setAutoCommit(false);
System.out.println("Opened database successfully");
ResultSet rs = stmt.executeQuery( "SELECT id FROM DAN" );
while(rs.next()){
System.out.println( rs.getInt("id") );
}
rs.close();
stmt.close();
conn.close();
}catch(ClassNotFoundException | SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null, e);
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
return null;
}
它确实成功连接,但是当它到达此行时会出错:ResultSet rs = stmt.executeQuery( "SELECT id FROM dan" );
这是我的数据库的图片,以查看我是否输入了正确的表格和信息:
答案 0 :(得分:1)
您将获得空指针异常,因为stmt等于null,并且您正在调用executeQuery()。你不能在空对象上调用方法。