2014-04-21 54 views
0

我試圖在客戶端程序中的清單發生更改時更新我的​​數據庫。更新語句以正確的值結束,但在嘗試執行更新時出現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() + ";"; 
+0

爲什麼不張貼實際的錯誤信息? – Coderchu

+2

編輯問題並顯示變量替換後的'sql'外觀。 –

回答

1

看起來好像你正在用逗號分隔你的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 
+0

好吧,這是有道理的。謝謝! – user3555182