안녕하세요! 각성한 데브키라입니다. 오늘은 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 구현의 기본적인 흐름을 이해할 수 있었기를 바랍니다. 실제 프로젝트에서는 더 복잡한 쿼리와 비즈니스 로직이 필요할 수 있지만, 이 기본 구조를 바탕으로 확장해 나갈 수 있습니다. 앞으로도 다양한 기술 스택을 활용한 개발 방법에 대해 계속해서 공유할 예정이니, 많은 관심 부탁드립니다! 질문이나 피드백이 있으시면 언제든지 댓글로 남겨주세요. 감사합니다!
'JAVA' 카테고리의 다른 글
Springboot Project 03 - 스프링부트(Spring boot)throw new SilentExitException(); 디버그 해결방법 (1) | 2024.11.17 |
---|---|
Springboot Project 02 - 타임리프(Thymeleaf) 초기셋팅 (0) | 2024.11.17 |
Springboot Project 01 - 프로젝트 초기셋팅 (0) | 2024.11.17 |
Error: Spring Boot에서 커스텀 에러 페이지 설정하기 (1) | 2024.11.04 |
Error: Spring boot 500에러에 관하여 (0) | 2024.11.04 |