You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:06:04