본문 바로가기
spring

Mybatis

by 신방동불주먹 2022. 12. 27.

<Mybatis>

 개발자가 지정한 SQL 저장 프로시저 그리고 고급Mapping을 지원하여 개발 생산성을 높이는 Persistence framework.

 

 

<특징>

  1. MyBatis-Spring은 Mybatis에서 Mybatis3와 Spring 연동 라이브러리로 제공
  2. 싱글톤 패턴으로 스프링빈 으로 등록하여 주입하여 쉽게 사용이 가능
  3. Mybatis Mapper Interface를 통해 DB에 접근
  4. 객체 프로퍼티로 파라미터와 결과를 객체(DTO, Map)등으로 자동 Mapping을 지원
  5. Spring 연동 모듈을 제공해주기 때문에 Spring 설정이 간단
  6. 트랜잭션을 관리해주기 쉽게 설정이 가능

 

https://jung-story.tistory.com/121

 

<root-context.xml>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
		<property name ="dataSource" ref="dataSource"></property> <!-- id로 정의되어있는 hikari datasource가 setMethod가 실행된다. -->
	</bean>
	
	<mybatis-spring:scan base-package="org.zerock.mapper" />
</beans>
  • Mybatis spring 라이브러리 클래스 sqlsessionfactorybean을 이용해  SQLsessionfactory를 등록 
  • sqlsessionfactory 내부적으로 sqlsession 만들어냄. sqlsession은  connection 생성 또는 sql 전달해 결과를 리턴받는다  

 

 

 

test

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTest {
	//스프링 컨테이너에서 가져올 때 자동주입
	@Setter(onMethod_ = @Autowired)
	private DataSource dataSource; //물리적 데이터에 대한 연결을 위한 팩토리빈???
	
	@Setter(onMethod_ = @Autowired)
	private SqlSessionFactory sqlSessionFactory;//root-context의 id값 
	
	@Test
	public void testMyBatis() {
		try {
			SqlSession session = sqlSessionFactory.openSession(); 
			Connection con = session.getConnection();
			
			log.info(session);
			log.info(con);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	
	@Test
	public void testConnection() {
		try {
			Connection con = dataSource.getConnection();
			log.info(con);  
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

'spring' 카테고리의 다른 글

PRG 패턴  (0) 2022.12.28
Oracle log4jdbc 쿼리로그 출력  (0) 2022.12.28
정리  (0) 2022.12.23
p223 화면구현  (0) 2022.12.23
영속계층 CRUD 구현  (0) 2022.12.23