java - jdbc中MySql更新语句

标签 java mysql jdbc

当客户端程序上的库存发生变化时,我正在尝试更新我的数据库。更新语句最终包含正确的值,但在尝试执行更新时出现 mysql 语法错误。

String sql = "UPDATE video_device SET serialNumber='" + device.getSerialNumber() + "', inventoryNumber=" + device.getInventoryNumber() + ", ownerName='" + device.getServicePerson().getName() 
                    + "', ownerTitle='" + device.getServicePerson().getJobTitle() + "', ownerEmail='" + device.getServicePerson().getEmail() + "', ownerPhoneNumber='" + device.getServicePerson().getPhoneNumber() 
                            + "', dateYear=" + device.getDateAquired().getYear() + ", dateMonth=" + device.getDateAquired().getMonth() + ", dateDay=" + device.getDateAquired().getDay() + ", typeDevice='" + device.getTypeDevice() 
                                   + "', description='" + device.getDescription() + "', price=" + device.getPrice() + ", locationBuilding='" + device.getLocation().getBuilding() + "', locationRoomNumber=" 
                                    + device.getLocation().getRoomNumber() + " WHERE serialNumber='" + orig.getSerialNumber() + "', inventoryNumber=" + orig.getInventoryNumber() + ", ownerName='" + orig.getServicePerson().getName() 
                    + "', ownerTitle='" + orig.getServicePerson().getJobTitle() + "', ownerEmail='" + orig.getServicePerson().getEmail() + "', ownerPhoneNumber='" + orig.getServicePerson().getPhoneNumber() 
                            + "', dateYear=" + orig.getDateAquired().getYear() + ", dateMonth=" + orig.getDateAquired().getMonth() + ", dateDay=" + orig.getDateAquired().getDay() + ", typeDevice='" + orig.getTypeDevice() 
                                   + "', description='" + orig.getDescription() + "', price=" + orig.getPrice() + ", locationBuilding='" + orig.getLocation().getBuilding() + "', locationRoomNumber=" 
                                    + orig.getLocation().getRoomNumber() + ";";

最佳答案

您似乎用逗号分隔 WHERE 条件。您必须使用 AND/OR 来分隔它们。

你在做什么:

SELECT ...
FROM ...
WHERE a=1, b=2, c=3
etc

应该做什么:

SELECT ...
FROM ...
WHERE a=1 AND b=2 AND C=3
ETC

关于java - jdbc中MySql更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189677/

相关文章:

java.lang.OutOfMemoryError 即使有很多

mysql - 为什么 "M"出现在Clojure MySQL查询结果中

mysql - 如何连接 mysql 中查询的月份和日期?

xml - 哪些关系数据库可以将 XML 存储为 native 类型?

Java @POST Webservice 415 不支持的媒体类型

java - 为什么我的计时器任务不能用于Discord API包装器?

Java - 如何将组件的垂直列居中?

android - 用于存储用户评论的 MySQL 数据库

java - 在 JDBC for Oracle 中设置客户端信息

jdbc - 使用 clojure.jdbc 和 clojure/data.json 扩展对 jsonb 的支持