강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

Jsp + Mssql Long타입 데이타 사용시 문제점
작성자 : 13 김영철
등록날짜 : 2009.01.24 23:12
2,764

기존에 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단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2715 MySQL 에서 사용되는 sql문 정리 M 최고의하루 12.19 2744
2714 [ MySQL ] MySQL 기본적으로 익혀야할 과제 M 최고의하루 12.18 2501
2713 [ MySQL ] MySql4.x / PHP4.x / Apache 한글깨짐 M 최고의하루 12.18 3258
2712 [ MySQL ] MySQL 5 한글 UTF8 한글 깨짐 분석 (Windows 용) M 최고의하루 12.04 5731
2711 MySQL 명령어 정리 M 최고의하루 12.04 2389
2710 MSSQL 페이징 13 김영철 01.24 2488
2709 mssql 암호화 13 김영철 01.24 2487
2708 mysql과 mssql의 변환시 유의사항 13 김영철 01.24 2673
2707 mssql 백업방법 13 김영철 01.24 2774
2706 데이터 정보 확인방법 13 김영철 01.24 2355
2705 MS-SQL JDBC "ResultSet Can Not Re-Read Row Data" 예외 처리 방법 13 김영철 01.24 3284
2704 IDENTITY 속성 13 김영철 01.24 2161
열람중 Jsp + Mssql Long타입 데이타 사용시 문제점 13 김영철 01.24 2765
2702 PWDENCRYPT와 PWDCOMPARE를 통해 암호화 기능 13 김영철 01.24 3471
2701 MSSQL 기본값 13 김영철 01.24 3037
2700 :: 데이터베이스의 종류 :: 13 김영철 01.24 2351
2699 :: 데이터베이스의 객체 :: 13 김영철 01.24 2636
2698 :: Transact-SQL 이란 :: 13 김영철 01.24 2887
2697 :: 단순 SELECT 문 :: 13 김영철 01.24 2369
2696 :: WHERE 절 :: 13 김영철 01.24 2804
2695 :: ORDER BY, GROUP BY :: 13 김영철 01.24 2480
2694 :: 조인(Join) 이란? :: 13 김영철 01.24 2183
2693 :: 조인(Join)의 사용 예 :: 13 김영철 01.24 2343
2692 :: SELECT INTO 와 INSERT INTO :: 13 김영철 01.24 2576
2691 :: 데이터베이스의 구조 :: 13 김영철 01.24 2307
2690 :: 데이터베이스 생성 :: 13 김영철 01.24 2113
2689 :: 데이터 무결성 :: [출처] :: 데이터 무결성 :: (쇼핑몰 대박못내는 진짜이유!) |작성자 프런티어 13 김영철 01.24 3178
2688 :: 인덱스(Index) :: 13 김영철 01.24 2091
2687 :: 뷰(View) :: 13 김영철 01.24 2817
2686 :: 저장프로시저 (Stored Procedure) :: 13 김영철 01.24 2785
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취