본문 바로가기

프로그래밍/SpringFramework

Springboot MariaDB Mybatis 사용법

반응형

설정하기

application.properties 설정

1. Datasource 설정을 합니다.
driverClassName, url, username, password, pool-size를 설정합니다. 

#Spring Datasource 설정
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://url:3306/database?characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.hikari.username=id
spring.datasource.hikari.password=passwd
spring.datasource.hikari.maximum-pool-size=20

 

2. mapper 파일 위치를 지정합니다.
필요한 경우 SQL의 PRODUCT_NAME 컬럼을 JAVA Domain의 productName을 변환하여 맵핑해주는 옵션인 map-underscore-to-camel-case를 true로 해줍니다.

#Mybatis 설정
mybatis.mapper-locations=mybatis/**/*.xml
mybatis.configuration.map-underscore-to-camel-case=true

 

build.gradle 설정

아래 라이브러리를 추가해줍니다.

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'

 

 

 

사용하기

Mapper 파일 생성

@Mapper annotation을 사용하는 Interface를 생성해줍니다.

@Mapper
public interface ProductMapper {

    List<Product> selectProduct(Product product);

    int updateProduct(Product product);

    int insertProduct(Product product);

    int deleteProduct(Product product);
}

 

XML 파일 생성

#{parameter}로 파라미터를 바인딩 할 수 있습니다.

<?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="kr.co.test.repository.ProductMapper">

    <select id="selectProduct" resultType="kr.co.test.Product">
    	select product_name, product_id, price from PRODUCT
	</select>
    
    <insert id="insertProduct" parameterType="kr.co.test.domain.Product">
    	insert into PRODUCT (product_name, product_id, price)
         values (#{productName}, #{productId}, #{price})
	</insert>
    
    <update id="updateProduct" parameterType="kr.co.test.domain.Product">
		update PRODUCT
           set price = #{price}
         where product_id = #{productId}
	</update>
    
    <delete id="deleteProduct">
		delete PRODUCT
         where product_id = #{productId}
	</delete>
    
 </mapper>

 

반응형

'프로그래밍 > SpringFramework' 카테고리의 다른 글

스프링부트 @Controller 1  (0) 2021.04.19
스프링 프레임워크 @Scheduled 사용법  (0) 2021.04.19