티스토리 뷰
반응형
Program2.java를 복사해서 Program3.java파일을 생성 후 실습
데이터 수정 전
자바 수정 코드(오류포함)
package ex1;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Program3 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
/*title, content, files, id를 정의*/
String title = "test3";
String content ="hahaha";
String files = "";
int id = 6; //id가 6인 데이터를 수정
String url = "jdbc:oracle:thin:@192.168.219.103:1521/XE";
/*UPDATE SQL문 */
String sql = "UPDATE notice"
+ "SET title=?,"
+ " content=?,"
+ " files=?"
+ "WHERE id=?"; //PreparedStatement를 통한 전달
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, "corini", "111111");
/*PreparedStatement도구 사용*/
PreparedStatement st = con.prepareStatement(sql);
//sql문 prepareStatement를 이용해서 st에 저장
/*preparedStatement 저장 */
st.setString(1, title);
st.setString(2, content);
st.setString(3, files);
st.setInt(4, id); //id는 int형이기 때문에 setInt로 저장
/*preparedStatement를 사용 할때에는 sql문을 전달하지 않는다! 이미 전달 되어있다.*/
int result = st.executeUpdate();
//excuteUpdate는 int로 실행된 row값을 result에 전달
System.out.println(result);
st.close();
con.close();
}
}
수정(UPDATE)은 삽입(INSERT)과 거의 동일한 코드를 사용한다. 쿼리문과 그에 맞게 자바코드만 수정해주면 된다.
오류: "SET 키워드가 없습니다"
/*UPDATE SQL문 */
String sql = "UPDATE notice"
+ "SET title=?,"
+ " content=?,"
+ " files=?"
+ "WHERE id=?"; //PreparedStatement를 통한 전달
자바문 안의 쿼리를 살펴보면 "UPDATE notice"와 "SET title=?"를 다시 SQL로 작성해보자.
UPDATE noticeSET title=? 이라는 코드가 된다.
그래서 자바에 SQL을 사용 할때에는 SQL문으로 다시 생각해보아야 한다.
/*UPDATE SQL문 */
String sql = "UPDATE notice "
+ "SET title=?,"
+ " content=?,"
+ " files=?"
+ "WHERE id=?"; //PreparedStatement를 통한 전달
이렇게 "UPDATE notice(SPACE)"를 추가
데이터 수정 후
UPDATE 코드가 정상적으로 작동
반응형
'JDBC' 카테고리의 다른 글
사용자 인터페이스 붙이기(공지사항 목록) (0) | 2021.05.03 |
---|---|
CRUD를 담당하는 NoticeService 생성 (0) | 2021.05.03 |
데이터 수정을 위한 쿼리 준비 (0) | 2021.04.30 |
데이터 입력 / PreparedStatement (0) | 2021.04.30 |
데이터 입력을 위한 쿼리 준비 (0) | 2021.04.30 |
댓글
공지사항