Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ITSTEIN

spring과 mybatis 연동 본문

JAVA

spring과 mybatis 연동

the awesomest 2018. 3. 15. 17:05

Springframework와 mybatis의 연동은 많은 방법이 있다. 


그중 SqlSessionTemplate, SqlSessionDaoSupport, MapperScanner 3가지 방식을 알아보겠다. 



1. 기본 설정 (SqlSessionFactory)





	
	
	
	


2. SqlSessionTemplate 사용하기



	


@Repository

public class UserCommonDAO {
	@Autowired private SqlSessionTemplate sqlSession;

	public void insertUser(UserVO user) {
		sqlSession.insert("UserDAO.insertUser", user);
	}
}


3. SqlSessionDaoSupport 사용하기

- SqlDaoSupport는 SqlSession을 더욱 쉽게 사용하기 위한 객체이다.

- SqlSessionFactory, SqlSessionTemplate 설정을 추가하고, SqlSessionDaoSupport를 상속받는 DAO객체를 생성한다.

- SqlSessionDaoSupport의 setSqlSessionTemplate()메소드에는 @Autowired가 빠져있으므로, 상속받은 클래스에서 재정의해서 @autoWired를 추가해야한다.


@Repository

public class UserCommonDAO extends SqlSessionDaoSupport {

	@Override
	@Autowired
	public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
		super.setSqlSessionTemplate(sqlSessionTemplate);
	}	
	public UserVO selectUser(String userId) {
		return getSqlSession().selectOne("selectUser", userId);
	}
}




	



3. mapper interface사용. 

- DAO영역을 interface로 만들어, data access 계층 추상화 처리.

- DAO영역을 구현객체로 만들지 않고, mapper.xml과 연결만 시켜주는 interface로 만든는 것이다.

- DAO에 비지니스로직이 들어갈 여지가 생기지 않고, 추상화가 가능하다.


2번 SqlDaoSupport를 mapperScanner를 사용한 interface연동으로 수정해보겠다.








- mapper.xml과 연동할 interface 생성

public interface UserCommonDAO {
	public UserVO selectUser(String userId);
}


DAO영역이 추상화 되어서 , 더욱 객체지향적인 코드가 완성되었습니다.



## 출처

http://www.mybatis.org/spring/ko/sqlsession.html

http://www.mybatis.org/spring/ko/mappers.html

http://www.mybatis.org/spring/factorybean.html

Comments