gpt4 book ai didi

java.sql.SQLException : SQL logic error or missing database, SQLite,JDBC

转载 作者:行者123 更新时间:2023-11-30 05:13:35 28 4
gpt4 key购买 nike

我已经使用 Java 中的 JDBC 创建了与 SQLite 的数据库连接。我的 SQL 语句执行正常,但有时在使用 conn.commit() 时出现以下错误:

java.sql.SQLException: SQL logic error or missing database

任何人都可以帮助我如何避免此类问题。有没有更好的调用 JDBC 程序的方法?

Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:/home/Data/database.db3");
conn.setAutoCommit(false);

String query = "Update Chits set BlockedForChit = 0 where ServerChitID = '" + serverChitId + "' AND ChitGatewayID = '" + chitGatewayId + "'";
Statement stmt = conn.createStatement();
try {
stmt.execute(query);
conn.commit();
stmt.close();
stmt = null;
}

最佳答案

您的变量 serverChitId 和 chitGatewayId 是否包含会破坏 SQL 的字符?使用PreparedStatements 通常更安全:

PreparedStatement ps = conn.prepareStatement("Update Chits set BlockedForChit = 0 where ServerChitID = ? AND ChitGatewayID = ?");
ps.setString(1, serverChitId);
ps.setString(2, chitGatewayId);
ps.executeUpdate();

这样,JDBC 驱动程序负责确保对字符串进行必要的转义。

关于java.sql.SQLException : SQL logic error or missing database, SQLite,JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2455587/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com