这段代码有什么问题?当我运行这个文件时,它说错误java.sql.SQLException:没有由SQLite JDBC驱动程序实现
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
String url="INSERT INTO com_details( com_id ,com_name,com_add,com_phone_1,com_phone_2,com_email ) VALUES (?,?,?,?,?,?)";
Class.forName("org.sqlite.JDBC");
conn=DriverManager.getConnection("jdbc:sqlite:C:\\refbill\\billing_system.db");
pst=conn.prepareStatement(url);
pst.setString(1,txtComId.getText());
pst.setString(1,txtComName.getText());
pst.setString(1,txtComAdd.getText());
pst.setString(1,txtComPhoneNo1.getText());
pst.setString(1,txtComPhoneNo2.getText());
pst.setString(1,txtComEmail.getText());
pst.executeUpdate(url);
}catch (SQLException | HeadlessException ex) {
JOptionPane.showMessageDialog(null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(addcom.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:2)
此代码存在一些问题。
executeUpdate()
,而不是executeUpdate(url)
。这是一个PreparedStatement
。它已经知道SQL是什么,因为你在创建时提供了它。如果您致电executeUpdate(String)
,则无法理解问号。conn
和pst
都应该是局部变量,使用的ResultSet
变量也应如此。否则代码不是线程安全的。SQLLite错误消息引用(1)。这是一个非常糟糕的努力。它应该说“预备语句中缺少值#1”或“......语法错误”。