2016-10-11 2 views
1

데이터베이스에 주어진 수량이있는 항목이 있습니다. 내가 입력 한 금액 (qtyPurchased)만큼 업데이트하려면 수량이 필요합니다. 예를 들어, 항목 50 수량을 가지고 새로운 양이 코드 그러나, 55을 반환해야합니다 그래서, 다음, 5를 구입 내가 가진 만이 내가 무슨 5.업데이트 항목 총계는 자바 데이터베이스

반환

public void purchased(int qtyPurchased) throws SQLException { 
    // TODO: Update the ProductsDB table's quantity for this 
    // object's product code. 
    try (Connection conn = SimpleDataSource.getConnection()) { 
     try (PreparedStatement stat = conn.prepareStatement(
       "UPDATE ProductsDB SET Quantity = ? WHERE Product_Code = ?")) { 
      stat.setInt(1, qtyPurchased); 
      stat.setString(2, productCode); 
      stat.execute(); 
     } 
    } 

} 

나는 다음을 시도했다 :

stat.setInt(1, qty + qtyPurchased); 

항상 오류가 발생한다. 도와주세요! thanks

+2

SQL 쿼리에서 수량을 늘리지 않는 이유는 무엇입니까? ('UPDATE ProductsDB SET Quantity = Quantity +? Product_Code =?') 테스트하지는 않았지만 제대로 작동 할 것이라고 생각합니다. – Dorian

+1

무엇이 오류입니까? 스택 추적을 게시 할 수 있습니까? 'qty'는 어디에서 왔습니까? – eltabo

+0

@ 도리안의 대답은 정확합니다. 지금 당장은 수량을 항상 현재 수량 * 플러스 * 수량 구입 대신 qty 구입 한 값으로 설정합니다. – Aquarelle

답변

2

수량을 증가시키고 그 증가 된 값으로 DB를 업데이트해야합니다.

또 다른 옵션은 수량을 가져 와서 변수에 저장 한 다음 증분하여 dB로 보내는 것입니다. 이것은 당신이 app의 다른 영역에서 var에 저장된 새로운 값을 사용할 수 있다는 장점이 있습니다.

관련 문제