<Mybatis>
개발자가 지정한 SQL 저장 프로시저 그리고 고급Mapping을 지원하여 개발 생산성을 높이는 Persistence framework.
<특징>
- MyBatis-Spring은 Mybatis에서 Mybatis3와 Spring 연동 라이브러리로 제공
- 싱글톤 패턴으로 스프링빈 으로 등록하여 주입하여 쉽게 사용이 가능
- Mybatis Mapper Interface를 통해 DB에 접근
- 객체 프로퍼티로 파라미터와 결과를 객체(DTO, Map)등으로 자동 Mapping을 지원
- Spring 연동 모듈을 제공해주기 때문에 Spring 설정이 간단
- 트랜잭션을 관리해주기 쉽게 설정이 가능
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 |