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

登录应用查询SQLite数据库时出现java.sql.SQLException问题排查

问题排查与修复

嘿,我一眼就瞅出你代码里的问题啦!这个java.sql.SQLException完全是SQL语句的语法错误导致的,和数据库连接、表存在与否没关系,具体问题有两个:

  • WHERE子句的条件没加逻辑连接符
    你写的select * from Login where username=? Password=?&...里,username=?和Password=?之间没有用AND(验证凭据肯定要同时满足用户名和密码,所以用AND)来连接。SQL解析器根本看不懂这种写法,会直接判定为语法错误。

  • 末尾的&...是无效字符
    语句最后那个&...完全是多余的垃圾字符,它不属于SQL语法的一部分,会进一步让数据库无法正确解析你的查询。

修正后的代码示例

try {
    // 修正语法错误,添加AND并移除无效字符
    String query = "select * from Login where username=? AND password=?";
    // 接下来记得用PreparedStatement设置参数,比如:
    // PreparedStatement pstmt = conn.prepareStatement(query);
    // pstmt.setString(1, inputUsername);
    // pstmt.setString(2, inputPassword);
    // ResultSet rs = pstmt.executeQuery();
    // 然后处理结果集...
} catch (SQLException e) {
    e.printStackTrace();
}

另外再提醒你两点:

  1. 用PreparedStatement的时候一定要按顺序设置参数,既能避免SQL注入,也能保证参数正确绑定;
  2. 虽然SQL关键字不区分大小写,但字段名尽量和数据库里的Login表保持一致(比如如果数据库里是password小写,代码里也统一小写,避免不必要的问题)。

内容的提问来源于stack exchange,提问作者Divya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:52:28