본문 바로가기

JAVA를 잡아라!/Java

데이터베이스 JDBS명세 브릿지(연결하는부분)

public class ConnectDB {

 public static void main(String args[]) {
  // DSN을 지정한다.
   String url = "jdbc:odbc:shop"; //sql일경우 식별자가 pubs 이런 폴더명으로 들어감
    Connection con;
    Statement stmt;

  // JDBC-ODBC 브릿지 드라이버를 로드한다.
    try {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch(java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: ");
      System.err.println(e.getMessage());
    }

    try {
     // 데이터베이스에 한글을 저장하기 위하여, 인코딩을 지정한다.
      // Access는 기본적으로 8859_1을 지정하면, 한글이 저장된다.
   Properties props = new Properties();
   props.put("charSet", "8859_1" );  
                                           
   // 드라이버에 해당 DSN과 프로퍼티를 지정한다.                                               
      con = DriverManager.getConnection(url,props);

   // 실제 데이터베이스에 접근하기 위해, statement를 생성한다.                      
   stmt = con.createStatement();
   
   // 제대로 연결되었는지를 확인한다.
   System.out.println("제대로 연결되었습니다");
   
   // statement를 종료한다.
   
      stmt.close();
     
      // 데이터베이스와의 연결을 끊는다.
      con.close();
           
    } catch(SQLException e) {
     System.out.println("SQLException: " + e.getMessage());
    }  
  }

 // 데이터베이스에 문자열을 넣을때, KSC5601 인코딩을 8859_1 타입으로
 // 변환하여, 넣어준다.
  static String toDB(String str) throws
    java.io.UnsupportedEncodingException
  {  
   return new String( str.getBytes("KSC5601"), "8859_1" );
  }
   
 // 데이터베이스에 문자열을 넘겨받을때, 8859_1 인코딩을 KSC5601 타입으로
 // 변환하여, 넘겨준다.
  static String fromDB(String str)
    throws java.io.UnsupportedEncodingException
  {  
    return new String( str.getBytes("8859_1"), "KSC5601" );
  }   
}


- 진한 글씨체 부분에 JDBS명세 (해당)
 ODBC : sun.jdbc.odbc.JdbcOdbcDriver
 MS SQL 2000 : com.microsoft.jdbc.sqlserver.SQLServerDriver
 MySQL : com.mysql.jdbc.Driver
 Oracle : oracle.jdbc.driver.OracleDirver


# 연결시 유의사항

1. 관리자 -> 서비스 -> MSSQL Agent "startup"

2. String url = "jdbc:odbc:pubs";

3. // props.put("charSet", "8859_1" );  

4. con = DriverManager.getConnection(url,"sa","1234");

## MS SQL 2000 명세

String url = "jdbc:microsoft:sqlserver://localhost:1433;databasename=a;User=[?];Password=a";