当客户端程序上的库存发生变化时,我正在尝试更新我的数据库。更新语句最终包含正确的值,但在尝试执行更新时出现 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/