설정하기
pom.xml에 라이브러리 등록해주기.
스프링 트랜잭션은 별다른 이유가 없는한 스프링프레임워크 버전과 맞춰준다. (나는 3.1.1이었음)
sqlsessionfactory bean등록하기 (id=SqlSessionFactory와 SqlSessionTemplate부분)
경로 안에있는 모든 xml파일을 mapper로사용하겠다는뜻
아직 mapper가 없어서 warn이뜨지만 제대로 실행되는 것을 볼 수 있다.
SqlSessionTemplate을 이용한 DAO 구현
예제1)
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
Mapper 작성 (id=selectAll)
package com.aia.firstspring.member.dao;
import java.util.List;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.aia.firstspring.domain.Member;
@Repository
public class MybatisMemberDao {
private String nameSpace = "com.aia.firstspring.mybatis.mapper.memberMapper";
@Autowired
private SqlSessionTemplate template;
public List<Member> selectMemberList(){
return template.selectList(nameSpace + ".selectAll");
}
}
Dao 작성
이전 코드와 비교했을때 Mybatis를 이용하면 코드가 매우간결해지는 것을 볼 수 있다.
(물론 서비스에서 Dao를 바꿔줘야하는 것 잊지말자)
예제2)
mapper 작성
public int insertMember(Member member) {
return template.update(nameSpace+ ".insertMember", member);
}
Dao
예제3) 외래키값 가져오기.
이렇게 keyproperty를 이용하면 idx값을 받아올 수 있다.
자동 매퍼 생성 기능을 이용한 DAO 구현
package com.aia.firstspring.member.dao;
import java.util.List;
import com.aia.firstspring.domain.Member;
public interface MemberInterfaceDao {
//abstract public 생략
List<Member> selectMemberList();
int insertMember(Member member);
int totalCount();
}
인터페이스생성!
MyBatis는 인터페이스를 이용해서 런타임에 매퍼 객체를 생성하는 기능을 제공한다.
마찬가지로 서비스에서 Dao를 바꿔줘야하는 것 잊지말아야하고
template를 주입받아야 한다.
Mapper
mapper에서는 인터페이스 안에 있는 메서드와 이름을 같에 만들어 주는 것이 중요하다.
이름이 같아야 자동으로 인식되기 때문이다 :)
'spring' 카테고리의 다른 글
[스프링] REST API / @RequestBody @ResponseBody , HttpMessageConverter (0) | 2021.01.20 |
---|---|
[스프링] 인터셉터 / intercepter (0) | 2021.01.15 |
[스프링] mapper / CRUD (0) | 2021.01.15 |
[스프링] jdbc (0) | 2021.01.11 |
[스프링] 파일업로드 (0) | 2021.01.08 |
[스프링] MVC - 컨트롤러 구현 (0) | 2021.01.08 |
[스프링] MVC : 패턴 (0) | 2021.01.08 |