본문 바로가기

Web Application/Spring boot

[spring] SpringBoot에 MyBatis 세팅 및 적용하는 방법

728x90
반응형
SMALL

OVERVIEW

마이바티스(Mybatis)는 자바 객체와 SQL문 사이에서 자동 매핑을 지원해 주는 오픈소스 프레임워크이다.

데이터베이스와 자바 객체 간의 매핑을 수동으로 작성하고 관리하는 방식으로 동작하기 때문에, 마이파티스를 사용하게 되면

SQL쿼리문과 자바 객체를 연결하여 데이터베이스의 데이터를 조작할 수 있다.

 

마이바티스는 XML 파일을 이용하여 쿼리를 작성하거나, Annotation을 통해 쿼리를 작성할 수 있다.

여기서는 XML 파일을 이용하는 방법을 살펴본다.

 

 


 

의존성 추가

 

pom.xml에 아래 의존성을 추가한다.

 

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>

 

application.properties 

 

  • db 연결 정보를 추가한다.
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/database명?useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=username
spring.datasource.password=password

 

  • mybatis 연결 정보를 추가한다.
    • 패키지 명 입력
    • 매퍼 파일의 경로 입력
mybatis.type-aliases-package=com.example.demo_openapi
mybatis.mapper-locations=classpath:mapper/*.xml

 


Mapper 파일 작성

 

매퍼파일은 application.properties에 작성해준 경로에 만들어 준다.

여기서 매퍼 파일의 경로는 [src/main/resources/mapper] 이다.

 

mybatis 설정하기

해당 매퍼 파일 경로에 xml 파일을 작성해준다.

 

 

UserMapper.xml

(*Mapper 파일의 네임스페이스와 메소드 이름은 SQL 매핑 파일과 일치해야 함)

 

<?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.example.demo_openapi.mapper.UserMapper">
    <select id="selectById" resultType="com.example.demo_openapi.model.Users">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>

 

 

UserMapper.java

 

package com.example.demo_openapi.mapper;

import com.example.demo_openapi.model.Users;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper {
    Users selectById(int id);
}

 

Users.java

 

public class Users {
    public int id;
    public String username;
    public String email;
    public String password;
    public String phoneno;
}

 

UserService.java

 

@Service
public class UserService {
    @Autowired
    public UserMapper userMapper;

    public Users getUser(int id) {
        return userMapper.selectById(id);
    }
}

 

UserController.java

 

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/users/{id}")
    public Users getUser(@PathVariable int id) {
        return userService.getUser(id);
    }
}

 

여기까지 완료하면,

아래와 같이 조회 결과를 확인할 수 있다.

 

728x90
반응형
LIST