2017-12-30 21 views
0

나는 시간과 시간을 삽입하는 게이트 입력 시스템에서 작업하고 있습니다. out-time에 대해 sql 쿼리를 작성하는 동안 WHERE 절에 오류가 표시됩니다. 오류를 해결할 수 없습니다. 정확한 SQL 쿼리는 무엇입니까?준비된 문에서 where 절을 사용하는 SQL 쿼리

java.util.Date date = new java.util.Date(); 
java.sql.Timestamp sqlTime = new java.sql.Timestamp(date.getTime()); 
PreparedStatement ps = con.prepareStatement("insert into ENTRY(OUTTIME) values(?,?,?,?) WHERE (ENTRY.ROLLNUMBER='"+rollno+"' AND ENTRY.OUTTIME ='NULL')"); 
ps.setTimestamp(4,sqlTime); 
ps.executeUpdate(); 
+3

왜 삽입이 곳에 문을 것 나는 다음과 같은 코드를 제안? 그것은 업데이트 성명서가 아니어야합니까? – MadProgrammer

+0

해당 구문이 없습니다. – Ravi

답변

1

당신은 기존 행 insert 문이 작동하는 방법이 아니다

PreparedStatement ps = con.prepareStatement("UPDATE ENTRY SET OUTTIME =? WHERE ROLLNUMBER=?"); 
ps.setTimestamp(1,sqlTime); 
ps.setString(2, rollno); 
1

에게 UPDATE해야합니다. 그것은 다시 동일한 레코드를 참조하는 WHERE 절을 가지고 INSERT 문에 대한 이해되지 않는다

PreparedStatement ps = 
    con.prepareStatement("UPDATE entry SET outtime = ? WHERE rollbumber = ?"); 
ps.setTimestamp(1, sqlTime); 
ps.setInt(2, myRollNo); 
1

: 기존 레코드를 업데이트하려면, 당신은 update 문을 필요 했어.

java.sql.Timestamp sqlTime = new java.sql.Timestamp(date.getTime()); 
String sql = "INSERT INTO ENTRY(OUTTIME) VALUES (?)"; 
PreparedStatement ps = con.prepareStatement(sql); 
ps.setTimestamp(1, sqlTime); 
ps.executeUpdate(); 
1

중 하나를 업데이트 또는 아래에 삽입 문을 변경 :

"insert into ENTRY(OUTTIME) select col1 from ENTRY WHERE ENTRY.ROLLNUMBER='"+rollno+"' AND ENTRY.OUTTIME ='NULL'" 
0

사용이 코드

java.util.Date date = new java.util.Date(); 
java.sql.Timestamp sqlTime = new java.sql.Timestamp(date.getTime()); 
PreparedStatement ps = con.prepareStatement("update ENTRY set OUTTIME= ? WHERE ENTRY.ROLLNUMBER='"+rollno+"' AND ENTRY.OUTTIME is NULL"); 
ps.setTimestamp(4,sqlTime); 
ps.executeUpdate(); 
+0

이 대답은 SQL 삽입에 취약합니다. –