티스토리 뷰
마이바티스 기능
(1) 마이바티스 프레임워크의 특징
- SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해 주는 Persistence 솔루션으로 관리한다. 즉 SQL을 소스 코드가 아닌 XML로 분리한다.
- SQL문과 프로그래밍 코드를 분리해서 구현한다.
- 데이터소스(DataSource) 기능과 트랜잭션 처리 기능을 제공한다.
(2) DataSource 기능
DataSource기능을 사용하려면, 1) action-mybatis.xml에서 이렇게 정의할 수 있고,
<beans>
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>/WEB-INF/config/jdbc/jdbc.properties</value>
</property>
</bean>
<bean id="dataSource"
class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
...
</beans>
2) mybatis.dtd를 이용하여 modelConfig.xml의 configuration 안에서 태그에서 태그를 정의할 수 있다
(3) SQL문과 프로그래밍 코드 분리
member.xml (class.xml) 에서 <mapper>태그안에 sql문 각각의 태그(select, insert, delete, update)와 id (resultType, resultMap, etc)를 지정하고, 단지 mapper를 통해 프로그래밍에서 사용하면 된다.
(4) SqlSession 클래스에서 제공하는 여러가지 메소드
메소드 | 기능 |
List selectList(query_id) | id에 대한 select 문을 실행한 후 여러 레코드를 List로 반환 |
List selectList(query_id, 조건) | id에 대한 select 문을 실행하면서 사용되는 조건도 전달 |
T selectOne(query_id) | id에 대한 select 문을 실행한 후 지정된 타입으로 한 개의 레코드 반환 |
T selectOne(query_id, 조건) | id에 대한 select 문을 실행하면서 사용되는 조건도 전달 |
Map<K,V> selectMap(query_id, 조건) | id에 대한 select 문을 실행하면서 사용되는 조건도 전달. Map 타입으로 레코드 반환 |
int insert(query_id, Object obj) | id에 대한 insert문을 실행하면서 객체의 값을 테이블에 추가 |
int update(query_id, Object obj) | obj 객체의 값을 조건문의 수정 값으로 사용해 id에 대한 update문 실행 |
int delete(query_id, Object obj) | obj 객체의 값을 조건문의 조건 값으로 사용해 id에 대한 delete문 실행 |
- 예제
@Repository("memberDAO")
public class MemberDAOImpl implements MemberDAO {
@Autowired
private SqlSession sqlSession;
@Override
public List selectAllMembers() throws DataAccessException {
return sqlSession.selectList("mapper.member.listAllMembers");
}
@Override
public int insertMember(MemberVO memberVO) throws DataAccessException {
return sqlSession.insert("mapper.member.insertMember", memberVO);
}
}
(5) 마이바티스로 조건값 전달하기
- MemberDAO에서 메소드 호출시 전달된 조건 값은 매개변수 이름으로 SQL문의 조건식에 전달한다.
- SQL문에서 조건값 사용 방법 : #{전달된 매개변수이름}
출처
https://dadmi97.tistory.com/78#%EB%A-%--%EC%-D%B-%EB%B-%--%ED%-B%B-%EC%-A%A-%--%EA%B-%B-%EB%-A%A-
'배운 것 기록 > Spring' 카테고리의 다른 글
롬복 (0) | 2022.09.06 |
---|---|
[Spring] Gmail SMTP - 이메일 인증 / 발송 (0) | 2022.08.27 |
JSTL - <c:if> / <c:choose> 태그 사용법 (0) | 2022.08.24 |
Controller 예외처리 (0) | 2022.08.21 |
스프링 프로젝트 구조 / 흐름 정리 (0) | 2022.08.10 |
댓글