[JDBC] 02 2일째

프로그래밍/DB 2007. 11. 27. 13:54 Posted by galad

★ 오라클 서버 설치된 컴퓨터에서 방화벽 설정하기

오라클 서버 기본 포트: 1521

방화벽에서 1521 포트를 열어주더라도 작동을 하지 않는다.

오라클은 기본적으로 1521을 사용하나, 클라이언트가 접속하면 랜덤하게 포트를 설정해서
클라이언트에게 할당한다. 따라서 이 임의의 포트는 방화벽에 막히므로 접속 불가.

그렇다고 방화벽을 열 수도 없는 노릇.

따라서 방화벽 설정 중에서 포트 단위가 아니라, 프로그램 단위로 접속을 허용하게 해 준다.
oracle.exe, tnslsnr.exe(? 암튼 이거 비슷한거)를 열어주면 된다.


★ JDBC에서 내리는 모든 명령어는 Auto Commit 이다.

Create든 Insert든...

Auto Commit 을 막는 설정도 있다고 한다.


/*******************************************************************************************
* 파일  : Exam03_01.java
* 용도  : 오라클 DB에 연결한 후, 테이블을 생성한다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/


// ① 관련 패키지 임포트
import java.sql.*;


public class Exam03_01
{
    // Fields
    // Constructor
    // Method
    // Main Method
    public static void main (String args[])
    {  
      Connection conn = null;
      Statement stmt = null;
      String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";


      // ② 드라이버 로딩  
      try
      {
         Class.forName("oracle.jdbc.driver.OracleDriver");
      }
      catch(ClassNotFoundException ex1)
      {
         System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
         return;
      }
      catch(Exception ex2)
      {
         System.out.println("DB 접속 실패 : "+ ex2.toString());
         return;
      }


      String sql=
"CREATE TABLE member(id CHAR(10) CONSTRAINT mb_id_pk PRIMARY KEY, pw CHAR(10) CONSTRAINT mb_pw_nn NOT NULL, name VARCHAR2(10) CONSTRAINT mb_name_nn NOT NULL, sex CHAR(1) CONSTRAINT mb_sex_ck CHECK (sex IN ('F', 'M')), ssn NUMBER(13) CONSTRAINT mb_ssn_uk UNIQUE)";
 
      try
      {
         // ③ 오라클 연결
         conn = DriverManager.getConnection(url, "lonelycat", "ora123");
         System.out.println("DB연결 성공");


         // ④ sql 명령문 구문 객체 생성
         stmt=conn.createStatement();
         // ⑤ sql query 실행
         stmt.executeUpdate(sql);

      }
      catch(Exception ex3)
      {
         System.out.println("SQL 문 수행 오류 : "+ ex3.toString());
         return;
      }
      finally
      {
         // ⑥ 연결 객체 반납
         try
         {
            stmt.close();
            conn.close();
         }
         catch(Exception ex4)
         {}
      }
       
   System.out.println("DB 접속 및 SQL 문 수행 성공!");
   }// main end
}//class end



/*******************************************************************************************
* 파일  : Exam03_02.java
* 용도  : 오라클 DB에 연결한 후, Exam03_01에서 생성한 테이블에 데이터를 넣는다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/

import java.sql.*;


public class Exam03_02
{
    // Fields
    // Constructor
    // Method
    // Main Method
    public static  void main(String[] args)
    {
        Connection conn = null;
        Statement stmt = null;
        String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";


        try
        {
           Class.forName("oracle.jdbc.driver.OracleDriver");
        }
        catch(ClassNotFoundException ex1)
        {
            System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
            return;
        }
        catch(Exception ex2)
        {
            System.out.println("DB 접속 실패 : "+ ex2.toString());
            return;
        }
       
        try
        {
            conn = DriverManager.getConnection(url, "lonelycat", "ora123");
            System.out.println("DB연결 성공");
           
            stmt = conn.createStatement();
            String sql =

                  "insert into member values( 'lonelycat', 'ora123', '성홍제', 'M', 7901161069111)";
            System.out.println("SQL : " + sql);
           
            int result = stmt.executeUpdate(sql);
            System.out.println(result + "개의 Data 입력 성공!!");
        }
        catch(Exception e)
        {
            System.out.println("Data 입력 실패!! : " + e.getMessage());
        }
        finally
        {
            try
            {
               if(stmt != null)
                  stmt.close();


               if(conn != null)
                  conn.close();

            }
            catch(Exception ex)
            {}
        }
    }

   
    /*static String toDB(String str) throws UnsupportedEncodingException{
        return new String(str.getBytes("KSC5601"), "8859_1");
    }
   
    static String fromDB(String str) throws UnsupportedEncodingException{
        return new String(str.getBytes("8859_1"), "KSC5601");
    }*/
}// class end



/*******************************************************************************************
* 파일  : Exam03_03.java
* 용도  : 오라클 DB에 연결한 후, Exam03_01에서 생성한 테이블의 데이터를 확인한다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/

import java.sql.*;

public class Exam03_03
{
    public static  void main(String[] args)
    {
        Connection conn = null;
        Statement stmt = null;
        String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";

        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, "lonelycat", "ora123");
        }
        catch(ClassNotFoundException ex1)
        {
            System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
            return;
        }
        catch(Exception ex2)
        {
            System.out.println("DB 접속 실패 : "+ ex2.toString());
            return;
        }

        try{
            stmt = conn.createStatement();
            String sql = "SELECT * FROM member";
            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next())
            {
                String s = rs.getString("id")+ "\t";
                s += rs.getString("pw")+"\t";
                s += rs.getString("name")+"\t";
                s += rs.getString("sex")+"\t";
                s += rs.getLong("ssn");
                System.out.println(s);
            }
        }
        catch(Exception e)
        {
            System.out.println("SELECT 실패! : " + e.getMessage());
        }
        finally
        {
            try
            {   
                if(stmt != null)
                    stmt.close();

                if(conn != null)
                    conn.close();
            }
            catch(Exception ex)
            {
            }
        }
    } // main end
}// class end



/*******************************************************************************************
* 파일  : Exam03_04.java
* 용도  : 오라클 DB에 연결한 후, 입력 받은 id를 이용해서 테이블을 검색한다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/

// ① 관련 패키지 임포트
import java.io.*;
import java.sql.*;

public class Exam03_04
{
    // Fields
    // Constructor
    // Method
    // Main Method
    public static void main (String args[])
    {  
        Connection conn = null;
        Statement stmt = null;
        String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";

        // id 입력받기
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String id = "";

        try
        {

            System.out.print("ID를 입력해주세요>> ");
            id = in.readLine();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

        //System.out.println(id);

        // ② 드라이버 로딩  
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, "lonelycat", "ora123");
        }
        catch(ClassNotFoundException ex1)
        {
            System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
            return;
        }
        catch(Exception ex2)
        {
            System.out.println("DB 접속 실패 : "+ ex2.toString());
            return;
        }

        String sql=
        "SELECT * FROM member WHERE id = '" + id.trim() + "'";

        System.out.println(sql);

        try
        {
            stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next())
            {
                String s = rs.getString("id")+ "\t";
                s += rs.getString("pw")+"\t";
                s += rs.getString("name")+"\t";
                s += rs.getString("sex")+"\t";
                s += rs.getLong("ssn");
                System.out.println(s);
            }
        }
        catch(Exception e)
        {
            System.out.println("SELECT 실패! : " + e.getMessage());
        }
        finally
        {
            // ⑥ 연결 객체 반납
            try
            {
                stmt.close();
                conn.close();
            }
            catch(Exception ex4)
            {}
        }

        System.out.println("DB 접속 및 SQL 문 수행 성공!");
    }// main end
}//class end

'프로그래밍 > DB' 카테고리의 다른 글

[JDBC] 06 PL/SQL  (0) 2007.11.27
[JDBC] 05 ResultSet  (0) 2007.11.27
[JDBC] 04 JDBC - Connection Pool...  (0) 2007.11.27
[JDBC] 03 3일째  (0) 2007.11.27
[JDBC] 01 JDBC 시작  (0) 2007.11.27