출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

설정하기

 

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

+ Recent posts