본문 바로가기



Springboot Project 04 - Mybatis셋팅



안녕하세요! 각성한 데브키라입니다. 오늘은 Spring Boot와 MyBatis를 활용하여 MariaDB에서 데이터를 조회하는 간단한 애플리케이션을 만드는 방법에 대해 소개하겠습니다. 이 포스팅에서는 데이터베이스 연결 설정부터 RESTful API 구현까지의 과정을 단계별로 설명할 예정입니다. 특히, MyBatis를 사용하여 SQL 쿼리를 매핑하고, Lombok을 통해 코드의 간결함을 유지하는 방법에 대해 알아보겠습니다. 이 예제를 통해 Spring Boot의 강력한 기능과 MyBatis의 편리함을 동시에 경험해 보세요!

 

db: 마리아db

경로: /src/main/resources/application.properties

<?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.alphonse.mapper.MessageMapper">

    <!-- select 쿼리 정의 -->
    <select id="getMessages" resultType="com.alphonse.model.Message">
        SELECT 1 AS IDX, 'Hello MyBatis' AS MESSAGE
        UNION ALL
        SELECT 2 AS IDX, 'Hello SpringBoot' AS MESSAGE
    </select>

</mapper>


경로: /src/main/resources/mapper/MessageMapper.xml

spring.application.name=alphonse

# 데이터베이스 연결설정
spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/alphonse
spring.datasource.username=alphonse
spring.datasource.password=pwd1234
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

# MyBatis 설정
mybatis.mapper-locations=classpath:/mapper/*.xml
mybatis.type-aliases-package=com.alphonse.model

logging.level.org.mybatis=DEBUG
logging.level.org.springframework=DEBUG

 

Message.java

package com.alphonse.model;

import lombok.Data;

@Data  // Lombok을 사용하여 getter, setter, toString 등을 자동으로 생성
public class Message {
    private int idx;
    private String message;
}

 

MessageMapper.java

package com.alphonse.mapper;

import com.alphonse.model.Message;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;

@Mapper  // MyBatis Mapper 인터페이스임을 명시
public interface MessageMapper {
    List<Message> getMessages();
}

 

MessageService.java

package com.alphonse.service;


import com.alphonse.mapper.MessageMapper;
import com.alphonse.model.Message;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@RequiredArgsConstructor  // Lombok 어노테이션으로 생성자 자동 생성
public class MessageService {

    private final MessageMapper messageMapper;  // @Autowired 생략 가능, Lombok이 자동으로 생성해줌

    public List<Message> getMessages() {
        return messageMapper.getMessages();
    }
}

 

MessageController.java

package com.alphonse.controller;

import java.util.List;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alphonse.model.Message;
import com.alphonse.service.MessageService;

import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor  // Lombok 어노테이션으로 생성자 자동 생성
public class MessageController {

    private final MessageService messageService;

    @GetMapping("/api/messages")
    public List<Message> getMessages() {
        return messageService.getMessages();
    }
}

 

http://localhost:8080//api/messages 

이렇게 해서 Spring Boot와 MyBatis를 이용한 간단한 메시지 조회 애플리케이션을 완성했습니다. 이 예제를 통해 데이터베이스와의 연결, SQL 쿼리 매핑, RESTful API 구현의 기본적인 흐름을 이해할 수 있었기를 바랍니다. 실제 프로젝트에서는 더 복잡한 쿼리와 비즈니스 로직이 필요할 수 있지만, 이 기본 구조를 바탕으로 확장해 나갈 수 있습니다. 앞으로도 다양한 기술 스택을 활용한 개발 방법에 대해 계속해서 공유할 예정이니, 많은 관심 부탁드립니다! 질문이나 피드백이 있으시면 언제든지 댓글로 남겨주세요. 감사합니다!