Java连接SQLite数据库无法识别PreparedStatement等方法该如何解决?
修复方案
核心错误原因
你遇到的报错由两个低级错误共同导致:
- 导入了错误的
Connection类 - 调用JDBC方法时大小写拼写错误
具体修复步骤
1. 修正Connection导入语句
你当前导入的com.sun.jdi.connect.spi.Connection是Java调试接口的内部类,并非JDBC操作数据库需要的连接类。将该导入语句替换为:
import java.sql.Connection;
2. 修正方法名大小写
Java是大小写敏感的编程语言,你调用的两个JDBC方法名拼写错误:
- 将
con.PreparedStatement(sql)改为con.prepareStatement(sql)(方法首字母为小写p) - 将
con.CreateStatement()改为con.createStatement()(方法首字母为小写c)
3. 移除多余强制类型转换
修正Connection导入后,DriverManager.getConnection()方法返回值本身就是java.sql.Connection类型,不需要额外添加强制类型转换,直接使用con = DriverManager.getConnection(url, name, pass);即可。
修正后代码示例
第一段插入逻辑代码
try { Class.forName("org.sqlite.JDBC"); String url = "jdbc:sqlite:biblio.db"; String name = "root"; String pass = ""; con = DriverManager.getConnection(url, name, pass); String sql = "insert into Clients (id, nom, prenom, date_naissance, nationalite) values (?,?,?,?,?)"; pst = con.prepareStatement(sql); pst.setString(2,txtnom.getText()); pst.setString(3,txtprenom.getText()); pst.setString(4,txtdatedenaissance.getText()); pst.setString(5,txtnationalite.getText()); pst.executeUpdate(); con.close(); JOptionPane.showMessageDialog(null,"Enregistrement réussi"); TableClients(); }catch (Exception e) { e.printStackTrace(); }
第二段查询逻辑代码
try{ Class.forName("org.sqlite.JDBC"); String url = "jdbc:sqlite:biblio.db"; String name = "root"; String pass = ""; con = DriverManager.getConnection(url, name, pass); Statement st = con.createStatement(); rs = st.executeQuery(sql);
内容的提问来源于stack exchange,提问作者Fiatpanda2000
相关产品推荐
相关产品推荐

