이번엔 Mybatis에 작성해둔 쿼리로 화면단을 통해 입력받은 파라미터가 들어와서 결과가 제대로 보여지는지 확인하는 방법에 대해서 포스팅 할거야
- log4j.xml
먼저 log4j에 쿼리 로그가 출력되도록 설정해줄거야 물론 log4j2나 slf4j도 무방해
<!-- Query Loggers --> 라는 주석 아래에 jdbc로 시작하는 logger name 2개가 보일거야
그거만 추가해주면돼
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>
<logger name="org.springframework.beans">
<level value="info" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<logger name="org.springframework.web">
<level value="info" />
</logger>
<!-- Query Loggers -->
<logger name="jdbc.sqlonly" additivity="false">
<level value="INFO"/>
<appender-ref ref="console-infolog"/>
</logger>
<logger name="jdbc.resultsettable" additivity="false">
<level value="INFO"/>
<appender-ref ref="console"/>
</logger>
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
|
cs |
- pom.xml
그리고 pom.xml에 dependency 추가해주자
<dependency>
<groupId>org.lazyluke</groupId>
<artifactId>log4jdbc-remix</artifactId>
<version>0.2.7</version>
</dependency>
|
cs |
- data-context.xml or root-context.xml
아마 스프링 MVC 패턴 프로젝트로 생성했다면
webapp/WEB-INF/spring/root-context.xml
파일에 dataSource관련 설정 해줬을거야 이정도는 해놓고 값 잘들어가나 안들어가나
System.out.println 찍어보는 애들이라고 생각하고 진행할게
<!-- JDBC-MSSQL -->
<bean id="dataSourceSpied" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="$" />
<property name="url" value="$" />
<property name="username" value="$" />
<property name="password" value="$" />
</bean>
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="dataSourceSpied" />
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE" />
<property name="sqlPrefix" value="SQL : "/>
</bean>
</property>
</bean>
|
cs |
- 쿼리로그 확인
여기까지 잘 따라와 줬다면 JUnit으로 테스트 코드를 돌려봤을때
아래와 같은 결과가 나와줘야해 임의로 설정해준 'tt'가 쿼리 결과에 출력되는게 보이지?
이렇게 확인 하는건 JUnit을 사용할 줄 알아야하는데
이걸 한 번에 다루면 또 엄청 길어지니까 나중에 나눠서 다루던지 할게 ㅋㅋ
그럼 오늘도 삽질의 범위를 조금이나마 좁혀졌길 바라면서 마무리 한다.
@Test
public void testSearchPaging() {
Criteria cri = new Criteria();
cri.setType("TCW");
cri.setKeyword("tt");
List<BoardDTO> list = boardDAO.getListWithPaging(cri);
list.forEach(b -> log.info(b));
}
|
cs |
)