7월 3일
1.DB 불러오는 또다른 방법 Mapper!!!
(1)root-context.xml에 Namespaces에서 mybatis 설정하기
왜?? root-context.xml 에서 자동완성을 쓰기 위해서
(2)root-context.xml에 작성해줌
<mybatis-spring:scan base-package="com.keduit.mapper"/>
(3)root-context.xml에 작성해준 코드가 잘 작성이 되었는지 체크해보기
src>test>java 에 class만들기
왜 src>test>java 에서 test를 하냐면 main 없이, 화면없이 코드가 잘돌아가는지 확인이 가능하기 때문이다.
package com.keduit.sample;
@RunWith(SpringJUnit4ClassRunner.class)//이 클래스로 잘돌아가는지 test해볼꺼야
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")//참고할 경로는 여기야
@Log4j //화면에 뿌려주는건 Log4j가 관리 할거야
public class TimeMapperTest {
@Setter(onMethod_=@Autowired)
private TimeMapper timeMapper; //TimeMapper 타입으로 Setter야 주입좀 해죠->스프링이 듣고 ->lombok에게전달
@Test
public void testgetTime() {
log.info(timeMapper.getClass().getName());
log.info(timeMapper.getTime());
}
}
(4)src>test>resources 에 xml파일을 만든다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keduit.mapper.TimeMapper">
<select id="getTime2" resultType="String">
SELECT sysdate from dual;
</select>
</mapper>
(5)다시 src>test>java의 test 파일에서 코드 테스트를 해본다.
package com.keduit.sample;
@RunWith(SpringJUnit4ClassRunner.class)//이 클래스로 잘돌아가는지 test해볼꺼야
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")//참고할 경로는 여기야
@Log4j //화면에 뿌려주는건 Log4j가 관리 할거야
public class TimeMapperTest {
@Setter(onMethod_=@Autowired)
private TimeMapper timeMapper; //TimeMapper 타입(main에서 만든 인터페이스)으로 Setter야 주입좀 해죠->스프링이 듣고 ->lombok에게전달
@Test
public void testgetTime() {
log.info(timeMapper.getClass().getName());
log.info(timeMapper.getTime()); //TimeMapper 타입의 추상메서드
}
@Test
public void testgetTime2() {
log.info(timeMapper.getTime2()); //TimeMapper 타입의 추상메서드
}
}
2.log4jdbc 로 DB테이블 편하게 확인 하기
(1)https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4/1.16
아동하기->태그 긁어오기->poom.xml붙여넣기
(2)src>main>resources
파일 만들고 아래 내용 쓰기 ,라이브러리를 쓰기위해 프로퍼티를 설정해 주는 과정
log4.jdbc.spylogdelegator.name=net.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
(3)root-context.xml 수정
로그를 수정해주는 방식을 바꾸기 위해 수정함
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<!-- log4jdbc 를 사용하기 위해 이부분 주석 처리 아래와 같이 수정해줌
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
-->
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:xe"></property>
<property name="username" value="scott" ></property>
<property name="password" value="tiger"></property>
</bean>
(4)콘솔창에 불필요한 정보가 출력되어 필요한 내용만 출력하기 위한 설정
log4j.xml 아래와 같이 설정하기
<logger name="jdbc.audit">
<level value="warn"/>
</logger>
<logger name="jdbc.resultset">
<level value="warn"/>
</logger>
<logger name="jdbc.connection">
<level value="warn"/>
</logger>