본문 바로가기

Java/[iBatis]

iBATIS 2.3.0.677 - PreparedStatement - ? 바인딩로그처리


VER : iBATIS 2.3.0.677 

PreparedStatement 를 log를 찍을때 ? 값을 바인딩 처리하여 로그를 찍도록 수정하였습니다.

사용방법은 기존  2.3.0.677 라이브러리 jar대신에 첨부한 파일로 대체하시면 됩니다.

그리고 log4j 의 properties 파일에 아래부분을 추가로 넣으면 됩니다.

log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG


iBATIS에서 제공하는 getParamValue() 를 변경해서

sql의 ? 부분을 찾아 List로 param값을 순서대로 넣고 null 및 "" 는 싱글퀘테이션을 넣지 않고
값이 있는부분만 넣어서 로그가 찍히도록 하였습니다.

또한 로그에 쿼리문이 한줄로 찍히는 문제는 

GoodBug(http://www.jakartaproject.com) 님이 알려준 개행처리(엔터처리)도 하였습니다.

ex)
SELECT * FROM TABLE WHERE NO = ?

SELECT * FROM TABLE
WHERE NO = '7777'

급하게 만들어서 오류가 있을 수 있습니다. 테스트 부탁드립니다.

컴파일은 JDK 1.4.2로 하였습니다. 그 이하버전에서는 오류가 나타날 수 있습니다.

ibatis-2.3.0.677b.jar - lib 파일
ibatis-2.3.0.677b_src.zip - 원본소스 파일


출처 : http://cafe.naver.com/deve.cafe