2014-04-21 2 views
0

클라이언트 프로그램의 인벤토리가 변경되면 데이터베이스를 업데이트하려고합니다. 업데이트 문을 올바른 값으로 끝나지 만 업데이트를 실행하려고하면 mysql 구문 오류가 발생합니다.jdbc의 MySql update 문

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