2016-08-27 2 views
0

내가 업데이트 할 때 내가 얻을데이터 잘림 오류 (너무 오래 열 item_code 데이터)

데이터 잘림 오류 (데이터가 너무 오래 열 item_codeat 행 번호에 대한)

나는 varchar(45)을 사용하고 있습니다 DB에 itemcode에 대한.

String category=""; 

String item_code = txt_inventory_item_code.getText(); 

String item_name = txt_inventory_item_name.getText(); 

Format formatter = new SimpleDateFormat("yyyy-MM-dd"); 
String date = formatter.format(txt_inventory_date.getDate()); 

String expiry_date = formatter.format(txt_inventory_expiry_date.getDate()); 

int quantity=Integer.parseInt(txt_inventory_quantity.getText()); 

double unit_price=Double.parseDouble(txt_inventory_unit_price.getText()); 


try{ 
    st = conn.createStatement(); 
    String SQL = "Update inventory SET " 
      + "item_code='"+txt_inventory_item_code+"'," 
      + "item_name='"+txt_inventory_item_name+"'," 
      + "date='"+formatter.format(txt_inventory_date.getDate())+"'," 
      + "expiry_date='"+formatter.format(txt_inventory_expiry_date.getDate())+"'," 
      + "quantity='"+txt_inventory_quantity+"'," 
      + "unit_price='"+txt_inventory_unit_price+"' WHERE inventory_id Like "+txt_inventory_inventory_id.getText(); 
    st.executeUpdate(SQL); 

    JOptionPane.showMessageDialog(null,"Updated Successfully"); 

} 
catch (SQLException | HeadlessException e) 
{ 
    JOptionPane.showMessageDialog(null,e); 
} 
+0

http://stackoverflow.com/help/mcve를 게시하십시오. – c0der

+0

글쎄, 오류는 항목 코드가 varchar (45)에 비해 너무 길다는 것입니다. 또한 텍스트 필드 중 하나에 작은 따옴표가 포함되면 코드가 실패하기 때문에 준비된 명령문 (http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)을 반드시 배워야합니다. , 그리고 SQL 주입 공격의 대상이됩니다. 또한 데이터베이스 별 로케일 별 형식으로 형식을 지정하지 않고 날짜를 날짜로 저장할 수 있습니다. 마지막으로 코드가 읽기 쉽고 오류가 발생하기 쉽습니다. –

답변

0

독립적으로 어떤 약점을 가지고 당신의 코드, 난 그 데이터베이스 테이블의 해당 열이 제한에 따라 모델의 엔티티의 다른 필드의 유효성을 확인하는 것이 좋습니다. 도움이 되길 바랍니다.

0

지속되는 데이터가 너무 길어 예상보다 오래되었습니다. 데이터베이스의 item_codeat 열에는 45 자 이하의 문자열 만 필요합니다.

솔루션

1 - 당신은 당신의 데이터베이스를 변경 할 수 있습니다. 당신은 당신이 클라이언트를 제한하는 검증의 어떤 종류를 둘 필요가 데이터베이스를 변경할 수없는 경우 TEXT

2에 item_codeat 의 데이터 유형을 변경/사용자가 입력하는 유효한 길이가 45 미만이다 item_codeat.

관련 문제