스프링부트에서 mybatis 설정은 기존 스프링, 전자정부 프레임워크보다 적용하기 훨씬 간편하다.
뭔가..이래도 되나 싶을 정도로 간단하다.
먼저 라이브러리를 적용한다. 버전은 올려도되고 낮추어도 되며 환경에 맞는 버전을 적용하자.
* maven 기준
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
*gradle 기준
compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.0.1'
다음으로는 application.properties를 수정한다.
mybatis에 적용시킬 데이터베이스는 간단하게 mariadb로 하였다.
#데이터 베이스 세팅
spring.datasource.url=jdbc:mysql://주소/데이터베이스명?characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=아이디
spring.datasource.password=비밀번호
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#마이바티스 세팅
mybatis.type-aliases-package:매퍼용 클래스가 위치한 경로
mybatis.mapper-locations: xml파일이위치한 경로/*.xml
데이터베이스 세팅부터 간단하다. 저렇게만 적어놓아도 데이터베이스 자원관리를 어느정도 해 준다.
mybatis 세팅도 2줄이 전부이다. 여기서는 mybatis 형태를 mapper 형식으로 적용하였다.
첫번째는 매퍼용 클래스가 위치하는 패키지명을 전부 써 주면된다.
두번째는 읽어드릴 xml 파일이 위치한 곳 까지 써 주면 되며, *.xml로 xml형식으로 된 파일 전부 읽게 하여 주면 된다.
그럼 매퍼가 위치한 패키지의 클래스 예제를 살펴보자.
매퍼는 모두 인터페이스로 만들어야 하며, 에노테이션 Repository와 Mapper가 필요 하다.
import java.util.HashMap;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface MyMapper {
int deleteData(HashMap<Object, Object> vo) throws Exception;
int updateData(HashMap<Object, Object> vo) throws Exception;
int insertData(HashMap<Object, Object> vo) throws Exception;
List<HashMap<Object, Object>> selectData(HashMap<Object, Object> vo);
}
그리고 xml이 위치한 곳에서 쿼리용 xml을 만들어 준다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="매퍼가위치한곳.MyMapper">
<select id="selectData" parameterType="hashMap" resultType="hashMap">
<!-- 쿼리문 -->
</select>
<insert id="insertData" parameterType="hashMap">
<!-- 쿼리문 -->
</insert>
<insert id="updateData" parameterType="hashMap">
<!-- 쿼리문 -->
</insert>
<insert id="deleteData" parameterType="hashMap">
<!-- 쿼리문 -->
</insert>
</mapper>
이를 사용하는 서비스는 간단하게 매퍼를 등록하여서 사용하면 된다.
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
//롬북을 적용하여도 된다.
@Service
@Transactional
public class MyService{
@Autowired
private MyMapper mapper;
public List<HashMap<Object, Object>> selectData(HashMap<Object, Object> vo) {
return mapper.selectData(vo);
}
public int deleteData(HashMap<Object, Object> vo) throws Exception {
return mapper.deleteData(vo);
}
public int insertData(HashMap<Object, Object> vo) throws Exception {
return mapper.insertData(vo);
}
public int updateData(HashMap<Object, Object> vo) throws Exception {
return mapper.updateData(vo);
}
}
반응형
'Spring framework > Spring boot' 카테고리의 다른 글
SpringBoot InfluxDB(Spring boot 인플럭스DB) (2) | 2020.11.19 |
---|---|
remove Springboot jsessionid , 스프링부트 jsession 제거 (0) | 2019.12.03 |
스프링부트 배너, Springboot banner, 스프링부트 웰컴 메시지 관리 (0) | 2019.12.02 |
스프링부트 타일즈, Springboot tiles, Spring boot 타일즈 적용 (3) | 2019.12.02 |
Spring boot 인터셉터, Spring boot Interceptor, 스프링부트 인터셉터 (0) | 2019.12.02 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글