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";