english

JDBC - Insert

이번 장에서는 NAMECARD 테이블에 JDBC를 이용해서 데이터를 INSERT 시키는 예제를 구현한다.
다음 인서트 문을 JDBC를 사용해 실행하는 게 우리의 목표다.

INSERT INTO NAMECARD VALUES
(
  SEQ_NAMECARD_NO.NEXTVAL,
  '홍길동',
  '011-0000-0000',
  'hongkildong@gmail.org',
  '활빈당'
);

아래 NamecardInsert.java 의 메인 메소드에 아래 JDBC프로그래밍 순서를 참고해서 작성한다.

  1. JDBC 드라이버 로딩
  2. Connection 맺기
  3. SQL 실행
  4. [SQL문이 select문이었다면 ResultSet을 이용한 처리]
  5. 자원 반환
NamecardInsert.java
package net.java_school.jdbc.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class NamecardInsert {
    static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
    static final String USER = "scott";
    static final String PASS = "tiger";
    
    public static void main(String[] args) {
        // JDBC 드라이버를 로딩한다.
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        Connection con = null;
        Statement stmt = null;
        String sql = "INSERT INTO NAMECARD VALUES " +
            "(SEQ_NAMECARD_NO.NEXTVAL," +
            "'홍길동'," +
            "'011-0000-0000'," +
            "'hongkildong@gmail.org'," +
            "'활빈당')";

        try {
            // Connection 맺기
            con = DriverManager.getConnection(URL, USER, PASS);
            // SQL 실행
            stmt = con.createStatement();
            stmt.executeUpdate(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println(sql);
        } finally {
            try {
                stmt.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

한번 실행하고 난 다음 데이터가 삽입되었는지 SQL*PLUS에서 확인한다.