Appendix A. tbJDBC 예제

본 장에서는 tbJDBC를 이용하여 작성한 기본 프로그램의 전체 소스 코드를 설명합니다.

JdbcTest.class

다음은 tbJDBC를 이용하여 JdbcTest 클래스 파일을 작성한 프로그램 소스 코드입니다.

import java.sql.CallableStatement; 
import java.sql.Connection;
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet;
import java.sql.SQLException; 
import java.sql.Statement; 
import java.sql.Types;

public class JdbcTest
{
    Connection conn;

    public static void main(String[] args) throws Exception
    {
        JdbcTest test = new JdbcTest();

        test.connect(); 
        test.executeStatement(); 
        test.executePreparedStatement(); 
        test.executeCallableStatement(); 
        test.disconnect();
    }

    private void connect() throws ClassNotFoundException
    {
        Class.forName("com.tmax.tibero.jdbc.TbDriver");

        try {
            conn = 
                    DriverManager.getConnection( "jdbc:tibero:thin:@localhost:8629:
                    tibero", "tibero", "tmax");
        } catch (SQLException e) 
            { System.out.println("connection 
            failure!"); System.exit(-1);
        }
        System.out.println("Connection success!");
    }

    private void executeStatement() throws SQLException
    {
        String dropTable	= "drop table emp";
        String createTable = "create table emp (id	number, "+
                             " name varchar(20), salary number)";
        String InsertTable = "insert into emp values(1000, 'Park', 5000)"; 
        
        Statement stmt = conn.createStatement();
        
        try {
            stmt.executeUpdate(dropTable);
        } catch(SQLException e) {
            // if there is not the table
        }

        stmt.executeUpdate(createTable); 
        stmt.executeUpdate(InsertTable);

        stmt.close();
    }

    private void executePreparedStatement() throws SQLException
    {
        PreparedStatement pstmt = conn
        .prepareStatement("select name from emp where id = ?"); 
        
        pstmt.setString(1, "1000");
        
        ResultSet rs = pstmt.executeQuery();

        while (rs.next()) 
            { System.out.println(rs.getString(1));
        }
        pstmt.close();
    }

    private void executeCallableStatement() throws SQLException
    {
        String callSQL = " CREATE PROCEDURE testProc "+
                         " (ID_VAL IN NUMBER, SAL_VAL IN OUT NUMBER) as " + 
                         " BEGIN" +
                         "	update emp" +
                         "	set salary = SAL_VAL" +
                         "	where id = ID_VAL;" +
                         "	select salary into SAL_VAL" + 
                         "		from emp" +
                         "	where id = ID_VAl;" + 
                         " END;";

        String dropProc = "DROP PROCEDURE testProc"; 
        
        Statement stmt = conn.createStatement();
        
        try {
            stmt.executeUpdate(dropProc);
        } catch(SQLException e) {
            // if there is not the procedure
        }

        stmt.executeUpdate(callSQL);

        CallableStatement cstmt = conn.prepareCall("{call testProc(?, ?)}"); 
        cstmt.setInt(1, 1000);
        cstmt.setInt(2, 7000); 
        cstmt.registerOutParameter(2, Types.INTEGER); 
        cstmt.executeUpdate();

        int salary = cstmt.getInt(2); 
        System.out.println(salary);

        stmt.close(); 
        cstmt.close();
    }

    private void disconnect() throws SQLException
    {
        if (conn != null) 
            conn.close();
    }
}

Last updated