프로그래밍/JDBC

알기 쉬운 JAVA JDBC INSERT문 작성 방법에 대해 알아보자

byungmin 2020. 6. 12. 11:29

JDBC를 통해 SQL INSERT 문을 작성해보자.

 

이클립스와 ORACLE을 연동하는 방법에 대해 알아보려면 밑에 링크를 확인하

 

알기 쉬운 JAVA JDBC 연동 방법에 대해 알아보자

JAVA에서 JDBC 연동하는 방법 이클립스환경에서 Oracle 데이터베이스를 연결하는 방법에 대해서 알아보도록 하자. (oracle 11g 설치) JDBC 연동 방법 JDBC(Java Database Connectivity)는 Java 와 Database를 연동..

byungmin.tistory.com

 

먼저 oracle에서 MEMO_TABLE에 데이터를 넣으려고 하는 쿼리를 작성해보면 다음과 같다.

 

SQL문을 통해 MEMO_TABLE에 INSERT문 작성

SQL 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. 테이블이 생성되었는지 확인

MEMO_TABLE에 데이터가 삽입된 것을 확인할 수 있다.

 

- 코드를 재실행했을 경우

 

코드를 한번 더 실행하게 된다면

출력 - 테이블 생성 실패

java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SCOTT.SYS_C007295) violated

SQLIntergrityConstraninViolationException이 발생하게 된다. 이 말은 유니크제약이 걸려있다는 뜻인데 발생하는 이유는 테이블을 생성할 때 NO 속성에 PRIMARY KEY 제약을 걸었기 때문이다. 

PRIMARY KEY는 값이 유일해야하며 null값이 들어가면 안됨을 의미한다. 그래서 이미 NO 가 3인 데이터가 들어가 있는데 똑같은 NO를 가진 데이터를 삽입하려고하면 에러가 발생하는 것이다.