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