주말복습_1

bitna's study note·2022년 7월 2일

스프링

목록 보기
7/54

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>
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글