MSSQL/Oracle/MySQL JDBC Driver Test
Posted 2013. 6. 10. 21:45간만에 삽질을 또 했습니다.
한동안 MySQL을 주로 사용하다가, Oracle을 썼고, 이번엔 MSSQL을 쓰게 되었는데, 초보적인 삽질아닌 삽질을 했습니다.
지난주까지 멀쩡하게 잘 되던 SqlServer 접속이 안되는 것입니다. 아무리 컴퓨터는 거짓말을 않한다지만...
원인은 이렇습니다.
1. 잘못된 Copy & Paste
Class.forName("dirverName") 에 대한 부분이 좀 이상했습니다.
com.microsoft.sqlserver.jdbc.SQLServerDriver vs com.microsoft.jdbc.sqlserver.SQLServerDriver
...sqlserver.jdbc.SQLD~ 가 맞습니다.
2. DBMS마다 URL 형식이 다릅니다.
- MySQL : jdbc:mysql://127.0.0.1:33061/dbName?
- Oracle : jdbc:oracle:thin:@127.0.0.1:1521:orcl
- MSSQL : jdbc:sqlserver://127.0.0.1:433;databaseName=dbName
- MSSQL(jtds) : jdbc:jtds:sqlserver://127.0.0.1:1433/dbName;tds=8.0
정확히 언급하면 같은 DBMS 일지라도 jdbc Driver마다 다르다고 할수 있습니다.
3. DBMS 버전, JDK 버전마다 jdbc Driver가 다릅니다.
Oracle의 경우 초창기엔 classes12.jar/zip 을 썼지만 현재는 ojdbc를 사용합니다.
MSSQL의 경우 jdk1.5의 경우 JDBC3.0 스펙의 sqljdbc.jar를 사용하지만
jdk1.6의 경우엔 위의 jar를 사용할 경우 Connection이 되지 않습니다.
jdk 1.6 이상에서는 JDBC4.0 스펙의 sqljdbc4.jar를 사용합니다.
결론은 주말에 기존 작업하던 노트북 HDD를 SSD로 교체하면서 OS를 재설치 했습니다. 설치하면서 jdk1.5, jdk1.6 두개 설치했던것을 jdk1.6만 설치해서 접속이 되지 않은 것입니다.
더군다나 중간에 googling 하여 copy & paste 소스에도 driver class package명이 다르게 적혀있어서 삽질을 더 오래하게 되었습니다.
각 DBMS별 connection을 가져오는 pseudo 코드는 다음과 같습니다.
1. MS-SQL
//MS에서 제공하는 드라이버를 사용하는 경우
String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=dbName";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url, "db_user", "db_password");
//net sourceforge.net에서 제공하는 드라이버를 사용하는 경우
String url = "jdbc:jtds:sqlserver://127.0.0.1:1433/DBMS명";
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, "db_user", "db_password");
2. Oracle 의 경우
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Class.forName("oracle.jdbc.OracleDriver");
...
3. MySQL 의 경우
String url = "jdbc:mysql://127.0.0.1:33061/dbName?"
Class.forName("com.mysql.jdbc.Driver");
....
MSSQL의 3가지 종류 jdbc Driver
'DBMS' 카테고리의 다른 글
DBeaver에서 Tibero 연동하기 (0) | 2018.02.09 |
---|---|
Windows 10에서 쓸만한 무료 DB Client Tool (0) | 2017.07.23 |
MariaDB vs MySQL과의 호환성 체크 (1) | 2013.02.06 |
MariaDB 설치하기 (0) | 2013.02.06 |
MySQL 의 대를 이을 오픈소스 RDBMS - 마리아DB (0) | 2013.02.03 |
- Filed under : DBMS