Programming/Spring

SpringBoot(2) - MyBatis 사용하기

코딩하는 포메라니안 2022. 6. 10. 00:54

*프로젝트 시작할 때, MyBatis 담아놓고 시작

 

 

1. Database 설정하기

application.properties 파일에 작성

#DataBase Setting
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8
spring.datasource.username=myid
spring.datasource.password=mypw

 

 

 

 

2. Mapper 생성하기

 

1. src/main/java내에 Mapper 클래스 생성

package com.test.boot.model.mapper;

@Mapper
public interface UserMapper {
	
	public void registerUser(UserDto userDto) throws Exception;
	public UserDto login(Map<String, String> map) throws Exception;
	public List<UserDto> listUser() throws Exception;
	public UserDto getUser(String userId) throws Exception;
	public void updateUser(UserDto userDto) throws Exception;
	public void deleteUser(String userId) throws Exception;
}

 

 

2. .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="com.test.boot.model.mapper.UserMapper">
 	<insert id="registerUser" parameterType="com.test.boot.model.UserDto">
 		insert into user
 		values(#{userId}, #{userName}, #{userPwd}, #{email}, now())
 	</insert>
 	
 	<sql id="getById">
	    select * from user
	    where userid=#{userId}
	</sql>
	
	<select id="login" parameterType="map" resultType="userDto">
	    <include refid="getById"></include> 
	    and userpwd = #{userPwd}
	</select>
	
	<select id="getUser" parameterType="string" resultType="userDto">
	    <include refid="getById"></include>
	</select>
 	
 	<resultMap type="userDto" id="userList">
 		<result column="username" property="userName"/>
 		<result column="userid" property="userId"/>
 		<result column="userpwd" property="userPwd"/>
 		<result column="email" property="email"/>
 	</resultMap>
 	
 	<select id="listUser" resultMap="userList">
 		select * from user;
 	</select>
 	
 	<update id="updateUser" parameterType="userDto">
 		update user
 		set userpwd=#{userPwd}, username=#{userName}, email=#{email}
 		where userid=#{userId}
 	</update>
 	
 	<delete id="deleteUser" parameterType="string">
 		delete from user
 		where userid=#{userId}
 	</delete>
 </mapper>

 

 

 

3. SpringBoot가 Mapper Scan하도록 하기

application.properties 파일에 작성

#MyBatis Setting
mybatis.type-aliases-package=com.test.boot.model
mybatis.mapper-locations=mapper/**/*.xml

#Failed to start bean 'documentationPluginsBootstrapper'; error
spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER