-3
나는 더비 데이터베이스에서 환자를 업데이트하기 위해이 코드를 작성했지만 SQLSyntaxErrorException
을 던졌습니다. 내가 놓친 게 있니?Derby 데이터베이스 예외 업데이트
public void updateInDatabase(int ID,String sex, String firstName, String familyName, String eMail) {
try {
String sql = "UPDATE PATIENT SET sex = "+ sex +" WHERE NR = "+ID;
st.executeUpdate(sql);
String sq2 = "UPDATE PATIENTEN SET FIRSTNAME=" + firstName + "WHERE NR=" + ID;
st.executeUpdate(sq2);
String sq3 = "UPDATE PATIENTEN SET FAMILYNAME=" + familyName + "WHERE NR=" + ID;
st.executeUpdate(sq3);
String sq4 = "UPDATE PATIENTEN SET EMAIL=" + eMail + "WHERE NR=" + ID;
st.executeUpdate(sq4);
} catch (SQLException ex) {
Logger.getLogger(DbManagerPatienten.class.getName()).log(Level.SEVERE, null, ex);
}
}
예, 당신은 구문 오류 및 [SQL 주입을 방지하기 위해 PreparedStatement''의 사용을 놓치고 :
은 자세한 내용은 다음을 참조하십시오 ] (https://en.wikipedia.org/wiki/SQL_injection) 공격을 통해 해커가 데이터를 도용하고 테이블을 삭제합니다. – Andreas
질문 자체에 관해서는 전체 오류 메시지를 표시하는 부분과 누락 된 부분이 누락되었습니다. 일반적으로 전체 스택 추적을 게시하는 것이 가장 좋습니다. – Andreas
질문 : 두 개의 서로 다른 테이블 ('환자'와 '환자')을 업데이트하는 것을 숙고합니까? 왜 3 개의 다른 UPDATE 문을 실행하여 같은 테이블의 3 개의 다른 열을 업데이트할까요? 한 문장으로 그렇게하는 것이 더 낫습니다. – Andreas