我尝试使用prepare语句将数据插入到我的数据库中,但是我得到了Nullpointerexception
我的数据库连接代码
public class DBConnect {
Connection conn=null;
public static Connection connecrDb(){
try{
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:E:\\NetBeansProjects\\Abdo`s Project\\project.sqlite");
System.out.println("connection success");
conn.setAutoCommit(false);
return conn;
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}
和我在Main Class中的代码
public class Items extends javax.swing.JFrame {
Connection conn =null;
ResultSet rs = null;
PreparedStatement pst=null;
public Items() {
initComponents();
DBConnect.connecrDb();
}
private void SaveBtnActionPerformed(java.awt.event.ActionEvent evt) {
try{
String sql = "INSERT INTO test (name) values(?)";
pst=conn.prepareStatement(sql);
pst.setString(1,item_name.getText() );
pst.executeUpdate();
conn.commit();
}
catch(Exception e ){
System.out.println(e);
System.out.println(e.getStackTrace());
}
}
输出
java.lang.NullPointerException
[Ljava.lang.StackTraceElement;@7da469fe
我的代码有什么问题?
答案 0 :(得分:0)
conn
为空。在Item
类中初始化它:
public class Items extends javax.swing.JFrame {
Connection conn = DriverManager.getConnection("jdbc:sqlite:E:\\NetBeansProjects\\Abdo`s Project\\project.sqlite");
您也可以在方法中初始化它,但只需确保在使用它之前对其进行初始化。