이번 시간에는 자바에서 Update문을 활용하여
SQL Develop문의 db 데이터를 수정하는 예제를 올려봅니다.
이번 예제도 앞선 예제와 크게 다른 바가 sql문만 차이가 있습니다.
자 그럼 예제를 보시죠
==========================================================
public class Test {
public static void main(String[] args) throws Exception {
//Memo 테이블의 내용을 수정하자 (작성자, 메모내용, 작성일)
Scanner sc = new Scanner(System.in);
System.out.println("수정할 글번호 입력=>"); // PK = WHERE 조건절
int idx = sc.nextInt();
System.out.println("수정할 작성자 입력=>");
String name = sc.next();
sc.skip("\r\n"); // 엔터값 건너뛰기
System.out.println("수정할 메모내용 입력=>");
String msg = sc.nextLine();
System.out.println(idx+"/"+name+"/"+msg);
FileReader fr = new FileReader("DB.properties");
Properties p = new Properties();
p.load(fr);
// 드라이버 로드
Class.forName(p.getProperty("driver"));
String url = p.getProperty("dburl");
String user = p.getProperty("user");
String pwd = p.getProperty("pwd");
Connection con = DriverManager.getConnection(url, user, pwd);
System.out.println("DB연결 성공");
//STMT 얻기
Statement stmt = con.createStatement();
//SQL문 작성 => UPDATE문
//String sql = "UPDATE MEMO SET NAME='"+name+"'" + ", MSG='"+msg+"'" + " where idx='"+idx+"'";
String sql = "UPDATE MEMO SET NAME='"+name+"',";
sql+=" msg='"+msg+"', wdate=SYSDATE WHERE idx="+idx;
System.out.println(sql);
//실행-> dml문 int executeUpdate()
int cnt = stmt.executeUpdate(sql);
String str=(cnt>0)?"수정 성공":"수정 실패-글 번호가 없어요";
System.out.println(str);
//DB연결 종료
stmt.close();
con.close();
sc.close();
}
}
==========================================================
-실행 결과-
SQL Developer에서 memo 테이블을 조회한 화면입니다.
데이터가 참 많죠.
저는 여기서 idx가 15번인 행의 데이터를 변경해보겠습니다.
작성자를 '박근혜' 로 수정할 메모내용 입력을 '대통령'으로 바꾸겠습니다.
위의 그림을 보면 성공적으로 변경 됬다는 것을 알 수 있습니다.
자 그럼 sql developer에 가서 다시 한번 확인해 봅시다
select * from memo를 한 결과 맨 첫번째 15번째 idx 번호의 데이터가
변경 됬다는 것을 알 수 있습니다.
댓글 없음:
댓글 쓰기