java - MySQL 服务器错误

标签 java mysql

我收到以下错误:

...check the syntax that corresponds to your MySQL server version for the right syntax to use near "Item1" at line 1

这是代码的相关部分:

String e = e_id.getSelectedItem().toString();
String value1 = e;
String o = o_code.getSelectedItem().toString(); 
String value2 = o;
String value3 = o_credit.getText();
// String value4 = session.getText();
// String value5 = designation.getText();
// String value6 = phd_com_id.getText();
String sql = "update passes_optional set o_code='"+value2+"', o_credit='"+value3+"' where e_id='"+value1+"'";
pst = conn.prepareStatement(sql);
pst.execute();

e_id 是一个下拉列表,其值为“Item1”、“Item2”、“Item3”和“Item4”。该表包含有关 Item1 的信息。

最佳答案

那是因为对于 prepareStatement,您必须使用 PreparedStatements

String sql="update passes_optional set o_code=?, o_credit=? where e_id=?";
PreparedStatement pst=conn.prepareStatement(sql);

pst.setString(1, value2);
pst.setString(2, value3);
pst.setString(3, value1);
pst.execute();

Oracle official Prepared Statements tutorial

更新

正如 JonK 所指出的,您还应该使用 pst.executeUpdate() 而不是 pst.execute():

String sql="update passes_optional set o_code=?, o_credit=? where e_id=?";
PreparedStatement pst=conn.prepareStatement(sql);

pst.setString(1, value2);
pst.setString(2, value3);
pst.setString(3, value1);
pst.executeUpdate();

关于java - MySQL 服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32007790/

相关文章:

java - UnsupportedOperationException - 此集合不支持 removeAll 方法(Java 集合)

mysql - 如何在 ID 级别上动态设置 WHERE 子句限制

MYSQL - 基本查询 where + group by +having

php - 如何在 codeigniter 中编写包含 OR、AND、LIKE 的自定义查询

java - 禁用按键事件

java - java中并发hashmap的生产者消费者模式

java - 在JavaFX按钮中显示dicom

PHP - MySql 数据库信息不存储

mysql - 无法连接到 AWS 实例中的 MySQL 端口

java - 在 Spring URL 中导航