JDBC를 통해 SQL INSERT 문을 작성해보자.
이클립스와 ORACLE을 연동하는 방법에 대해 알아보려면 밑에 링크를 확인하자
먼저 oracle에서 MEMO_TABLE에 데이터를 넣으려고 하는 쿼리를 작성해보면 다음과 같다.
SQL문을 통해 MEMO_TABLE에 INSERT문 작성
SQL developer에서 작성한 쿼리다. 데이터를 두 개 정도 넣어 놓고 JDBC를 통해 이클립스에서 데이터를 삽입 해보자
1. 기본적인 코드 구성
기본적인 코드는 다음과 같다.
1) 드라이버 객체화
Class.forName("oracle.jdbc.driver.OracleDriver");
2) DB와 연결
Connection con = DriverManager.getConnection();
3) 실행도구 생성 (sql문을 실행시키기위한 Statement 객체 얻어오기)
Statement stmt = con.createStatement();
4) SQL문 실행
stmt.execute(sql);
5. DB연결 종료(자원 반납)
stmt.close();
con.close();
2. 코드 작성
import java.sql.*;
public class JDBCTest2 {
public static void main(String[] args) {
try {
// 1. 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Driver Loading Success!!");
// 2. DB연결 ==> Connction 얻기
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String user = "scott", pwd = "****"; // 각자 DB 비밀번호 입력
Connection con = DriverManager.getConnection(url, user, pwd);
System.out.println("DB 연결 성공!!");
// 3. SQL문 작성
String sql = "INSERT INTO MEMO_TABLE";
sql += " VALUES (3, '이길동', '안녕하세요 친구들', SYSDTAE)";
// 4. sql문을 실행시키기위한 Statement객체 얻어오기
Statement stmt=con.createStatement();
// 5. Statement의 execute(String sql)메소드를 이용해서 sql문 실행
stmt.execute(sql);
System.out.println("데이터 insert 성공!!");
// 6. DB연결 자원 반납
if(stmt != null) stmt.close();
if(con != null) con.close();
} catch(ClassNotFoundException e) {
System.out.println("드라이버 로딩 실패!!");
} catch(SQLException e) {
e.printStackTrace();
}
}
}
출력 - 테이블 생성 성공
Driver Loading Success!!
DB 연결 성공!!
데이터 insert 성공!!
3. 테이블이 생성되었는지 확인
- 코드를 재실행했을 경우
코드를 한번 더 실행하게 된다면
출력 - 테이블 생성 실패
java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SCOTT.SYS_C007295) violated
SQLIntergrityConstraninViolationException이 발생하게 된다. 이 말은 유니크제약이 걸려있다는 뜻인데 발생하는 이유는 테이블을 생성할 때 NO 속성에 PRIMARY KEY 제약을 걸었기 때문이다.
PRIMARY KEY는 값이 유일해야하며 null값이 들어가면 안됨을 의미한다. 그래서 이미 NO 가 3인 데이터가 들어가 있는데 똑같은 NO를 가진 데이터를 삽입하려고하면 에러가 발생하는 것이다.
'프로그래밍 > JDBC' 카테고리의 다른 글
알기 쉬운 JAVA JDBC CREATE문 작성 방법에 대해 알아보자 (0) | 2020.06.11 |
---|---|
알기 쉬운 JAVA JDBC 연동 방법에 대해 알아보자 (3) | 2020.06.09 |