mybatis를 사용하면서 SQL에서 파라미터 에러가 나는데 도저히 원인을 찾을 수가 없었다.
예전에 모기업에 파견나갔을때 보니까 SQL의?로 표시된 파라미터 값에 실제 매핑된 값을 표기해주는 로그를 봤었는데 그게 생각나서 찾아봤으나 동일한 것은 찾질 못함...
그리고 SQL로그 표시해주는 라이브러를 여러개 확인해봤는데 log4sql이 제일 확실했다. 다만 maven엔 없는듯
1.
http://log4sql.sourceforge.net/index_kr.html
일단 위의 사이트에 들어가서 log4sql.jar, log4sql_conf.jsp를 다운받는다.
2.
프로젝트 내에 다음과 같이 파일들을 위치시킨다. log4sql_conf.jsp는 WEB-INF 아래에 위치시켜야한다.
log4sql.jar의 위치는 어차피 Build Path로 설정하니 위치는 크게 상관없는듯 하다.
3.
<!-- DataSource --> <bean id="dataSourceMySQL" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://주소주소:포트포트/DB명"/> <property name="username" value="아이디"/> <property name="password" value="비번"/> </bean> <!-- DataSource --> <bean id="dataSourceMySQL" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="core.log.jdbc.driver.MysqlDriver" /> <property name="url" value="jdbc:mysql://주소주소:포트포트/DB명"/> <property name="username" value="아이디"/> <property name="password" value="비번"/> </bean>
root-context에서 설정한 Datasource의 driverClassName을 변경한다. driverClassName은 DB마다 다르므로 다운로드 받은 사이트의 사용탭을 참고하며 변경한다.
4
결과.. 위의 쿼리를 보면 USERID의 ? 부분에 admin이라는 파라미터값이 들어간 것을 볼 수 있다.
위의 SQL은 실제 실행된 쿼리고 아래는 다른 상황의 쿼리를 알려주는 것으로 알고 있는데 기억은 나지 않는다.
그리고 저 /**P*/는 왜붙는지 모르겠다.....
참고 - http://kooremo.tistory.com/entry/log4sql-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95
'Programming > >> Spring' 카테고리의 다른 글
[Spring] JsonView 리턴 (1) | 2016.09.28 |
---|---|
[Spring] Spring Transaction 설정 (2) | 2016.03.02 |
[Spring] Could not write JSON: Object is null (0) | 2016.02.26 |
[Spring] Spring Mybatis 설정 2 (3) | 2016.02.23 |
[Spring] Spring Mybatis 설정 1 (2) | 2016.02.17 |
댓글