기존에 freetds_jdbc.snapshot.jar에는 버그가 있습니다. text 타입에 글을 삽입 시 처리가 안되는 문제가 입니다. 관련 사이트를 찾아 다녔더니 패치가 있다고는 하는데 어디서고 다운을 받을 수가 없더군요. 그래서 microsoft에서 제공하는 jdbc로 바꾸었습니다.
Download
mssqlserver.jar
msbase.jar
msutil.jar
Install
다운받은 파일을 압축을 면 위의 세개의 파일이 들어습니다. 이것을 tomcat의 common/lib 안에 넣고 테스트를 하면 드라이버를 찾지 못한다는 메세지가 나타납니다.
위 파일들을 클래스패스에 추가 시키거나 C:\j2sdk1.4.1\jre\lib\ext 안에 넣어 주시고 톰캣을 재시동 하면 됩니다.
Use
DB_DRIVER=com.microsoft.jdbc.sqlserver.SQLServerDriver
DB_URL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=데이터베이스
DB_ID=아이디
DB_PWD=패스워드
위의 두개만 알면 되겠죠 ^^
Example
<%@ page contentType = "text/html;charset=euc-kr" %>
<%@ page import = "java.sql.*" %>
<%
String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbUrl = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=TEST";
String dbId = "test";
String dbPw = "test";
Connection conn = null;
Statement stmt = null;
try
{
Class.forName( dbDriver );
conn = DriverManager.getConnection( dbUrl, dbId, dbPw );
stmt = conn.createStatement();
conn.close();
out.println("mssql jdbc test: connect ok!!");
}
catch( Exception e )
{
out.println(e);
}
%>
사용시 문제점
1. 불러온 내용과 처리 순서를 일치시켜야 합니다.
"select a,b,c,d from test" 이런 쿼리문을 실행한다고 할때
아래처럼하면 error가 발생합니다.
String b = rs.getString("b");
String c = rs.getString("c");
String a = rs.getString("a");
String d = rs.getString("d");
select에서 불러오는 순서와 처리 순서가 일치해야만 합니다.
String a = rs.getString("a");
String b = rs.getString("b");
String c = rs.getString("c");
String d = rs.getString("d");
다른 데이터베이스에서는 이런 부분이 관대해서 알아서 처리가 되지만 가급적 순서를 맞춰서 처리하는 게 성능면에서 좋습니다.
2. 결과 값을 재사용 할 수 없습니다.
"select a,b,c,d from test" 이런 쿼리문을 실행한다고 할때
if (rs.getString("a") == null || rs.getString("a").equals(""))
String t = rs.getString("a");
위의 예는 지금까지 아무런 문제가 되지 않았지만 jdbc를 바꿔서 사용하니 재사용 할 수 없다는 에러가 나타났습니다.
다음처럼 고쳐야 합니다.
String a = rs.getString("a");
if (a == null || a.equals(""))
String t = a;
위의 두가지 문제점은 jdbc가 까다로와서 발생하는 문제라기 보단 제가 그동안 코딩을 남발해서 발생한 문제같습니다.
가급적 mssql이 아니더라도 지켜주는게 좋습니다.
[출처] 민주가인
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|