이전 시간에 오라클 jdbc 연결을 통해서 select를 이용한 데이터 출력 방법에 대해서 알아보았는데요. 이번에는 java PreparedStatement 기능을 이용하여 select를 제외한 Create, Insert, Update, Delete 예제를 알아보겠습니다.
PreparedStatement를 이용하여 데이터를 조작할 때 각각의 명령어가 조금씩 다른데요. db연결 부분을 공통으로 작성하고 다른 부분만 추가하여 구동해 보겠습니다.
1. Create
public class CreateTest { public static void main(String[] args) { String driver="oracle.jdbc.driver.OracleDriver"; String url="jdbc:oracle:thin:@localhost:1521:ORCL"; String sql = "create table emp1 as select ename, job, sal from emp "; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { Class.forName(driver); // Oracle Driver 로딩 conn=DriverManager.getConnection(url,"scott","tiger"); // 데이터베이스 connection pstmt=conn.prepareStatement(sql); // sql을 실행하기 위한 prepareStatement 생성 pstmt.executeQuery(); // sql 실행 pstmt.close(); //prepareStatement 닫음 conn.close(); //연결 종료 }catch(Exception e){ System.out.println("Error"); e.printStackTrace(); } } }
EMP 테이블과 동일한 구조의 EMP1 테이블을 생성한 모습입니다.
2. Insert
String sql = "insert into emp1(ename, job, sal) values('홍길동', '개발자', ? )"; pstmt.setInt(1, 5000);; // sql의 첫번째 ?에 SCOTT를 할당 int result = pstmt.executeUpdate(); // 할당 완료 System.out.println("결과 : " +result);
PreparedStatement의 setInt를 통하여 ? 부분에 값을 할당할 수 있습니다.
쿼리가 정상적으로 수행하여 데이터가 들어간 모습입니다.
3. Update
String sql = "update emp1 set job=? where ename = ? "; pstmt.setString(1, "DBA"); pstmt.setString(2, "홍길동"); int result = pstmt.executeUpdate(); System.out.println("결과 : "+result);
update 쿼리도 마찬가지로 sql의 구문을 update로 바꾸고 ?부분에 값만 할당해 주고 쿼리를 수행하면 됩니다.
4. Delete
String sql = "delete from emp1 where ename = ? "; pstmt.setString(1, "홍길동"); int result = pstmt.executeUpdate(); System.out.println("결과 : "+result);
홍길동의 데이터가 삭제된 모습입니다.
java PreparedStatement 기능을 이용한 Create, Insert, Update, Delete 구문을 수행해 보았는데요.
위의 예제뿐만 아니라 여러가지 쿼리를 넣어서 한번 연습해 보시기 바랍니다.
학생
정말 속이 시원하네요 감사합니다
학교 수업 ppt 내용이 너무 부실해서
이해가 잘안갔는데 써주신 내용이 많은 도움이 됐습니다
관리자
도움이 됐다니 뿌듯하네요.^_^