본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework/Spring boot

Spring boot 마이바티스, Spring boot mybatis, 스프링부트 mybatis 적용

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 12. 2.

 

스프링부트에서 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형식으로 된 파일 전부 읽게 하여 주면 된다.

 

경로까지만 적어주자. 그리고 Mapper로 사용되는 파일은 전부 인터페이스로 만들어야 한다.

 

xml위치는 resources 아래에 디렉토리를 만들어 위치시키도록 하자.

 

 

그럼 매퍼가 위치한 패키지의 클래스 예제를 살펴보자.

매퍼는 모두 인터페이스로 만들어야 하며, 에노테이션 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);
    }    
}

 

 

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글