- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 Java 中的 MySQL,我正在尝试更新数据库中的现有数据。主要目的是创建一个计数器,当操作完成时,将更新数据库中的 int 。
在这种情况下,我尝试在代码编译时通过增加整数来更新 daily_search_count 。下面你可以看到我的数据库数据的图片: data within the database我编写的代码旨在每次运行代码时将“daily_search_count”增加 1。但不幸的是我收到以下错误:
Exception in thread "main" java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''accounts' set 'daily_search_count' = '4' where 'id' = '1'' at line 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1116)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1066)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1396)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1051)
at Database.main(Database.java:29)
我看不出我的代码有什么问题,如下所示:
import java.sql.*;
public class Database {
public static void main(String[] args) throws Exception {
String host = "jdbc:mysql://localhost:3306/presearch";
String username = "root";
String password = "";
String query = "select * from accounts";
Connection con = DriverManager.getConnection(host, username, password);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
String userData = "";
while (rs.next()) {
if (rs.getInt(4) < 33) {
userData = rs.getInt(1) + " : " + rs.getString(2) + " daily search count : " + rs.getInt(4);
System.out.println(userData);
int counter = rs.getInt(4) + 1;
PreparedStatement updatexdd = con.prepareStatement("update 'accounts' set 'daily_search_count' = '" + counter + "' where 'id' = '" + rs.getInt(1) + "'");
int updatexdd_done = updatexdd.executeUpdate();
}
}
st.close();
con.close();
}
}
我希望有人能看到我做错了什么。
提前致谢!
最佳答案
您的代码中存在一些必须避免的问题:
'accounts'
?
) 在带有PreparedStatement 的查询中指定您的属性您的代码应如下所示:
public static void main(String[] args) throws Exception {
String host = "jdbc:mysql://localhost:3306/presearch";
String username = "root";
String password = "";
String query = "update accounts set daily_search_count = daily_search_count + 1 where daily_search_count < 33";
try (Connection con = DriverManager.getConnection(host, username, password);
PreparedStatement updatexdd = con.prepareStatement(query)) {
int updatexdd_done = updatexdd.executeUpdate();
}
}
在我的代码中,我使用 try-with-resources Statement它支持 AutoCloseable
和 Closeable
接口(interface),这意味着您不需要关闭连接或语句。
关于Java MySQL 执行更新 SQLSyntaxErrorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50648786/
首先,我创建了一个 2 sql 表,一个正在运行,另一个不是我的 java 类中的代码 try { Prepared
我正在尝试使用Where 子句来过滤掉空实体。 即 @Where(clause = "size(userTracking) > 0 OR size(userResults) > 0") 在 @One
我在 phpMyAdmin 中设置了数据库,在下面的查询中,我尝试更新包含某些软件的文件路径的字符串字段,例如“C:\Program Files (x86)\Kaspersky Lab\Kaspers
这个方法一直抛出标题中的异常,我找不到原因,我已经通过连接创建了其他表,并且所有引用的表都已创建。我正在使用嵌入式JavaDB . private void createEvidenceTable()
请看下面的代码 package normal; //This class if s for checking the database. If the database doesn't exists,
我在执行以下 SQL 语句时遇到错误: String sql = "CREATE TABLE RESERVATION ("; sql = sql + " UID VARCHAR,"; sql = sq
这个问题已经有答案了: When to use single quotes, double quotes, and backticks in MySQL (13 个回答) 已关闭 5 年前。 我刚刚开
我已经阅读了之前与我的查询相关的问题。尝试在现有代码中进行这些更改。但仍然收到此错误。我花了 3 小时解决此问题,但无法捕获该错误。请帮助我解决。 我正在使用PreparedStatement发送SQ
我目前收到此错误: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual t
我尝试运行 preparedStatement ps 来检查数据库中是否存在数据。然后它将运行更新(如果存在)或插入(如果不存在)。但是,我收到语法错误 java.sql.SQLSyntaxError
我尝试执行以下代码行: List sectList = new ArrayList(); try { String query = "SELECT * FROM legaf W
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
java.sql.SQLSyntaxErrorException: No such column: id 当表已包含id列时 我正在尝试使用以下 native SQL 查询来运行来自 Reposito
我尝试使用嵌入在程序中的HSQLDB。 但是,当我创建表并向数据库中插入数据时,出现错误。 以下是错误消息的一部分。 java.sql.SQLSyntaxErrorException: unexpec
搜索了整个网站,但没有任何帮助,所以我决定打开一个新主题。这是我的问题:我正在用 java 开发一个简单的 GUI,它在后面使用 JDBC。以下是一些标题:- 我建立了成功的数据库连接,- 我可以运行
我得到了一个大的堆栈跟踪,其根源是:java.sql.SQLSyntaxErrorException:表/ View “U”不存在。后跟所有需要的异常实体:java.sql.SQLTransactio
SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to
这是我的代码。当我运行它时,出现错误: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check th
这个问题已经有答案了: SQL query: Can't order by column called "order"? (7 个回答) 已关闭 4 年前。 我想通过 api 显示订单列表,但 DAO
我试图将一个非常长的字符串(基本上是图像的 base64 编码字符串)插入到数据库中的 CLOB 类型列中。但是我收到了异常 java.sql.SQLSyntaxErrorException 。正确的
我是一名优秀的程序员,十分优秀!