Spring

[Spring] DB 연동 (MariaDB), MyBatis 사용

HSRyuuu 2023. 8. 14. 16:29

Spring DB 연동

Spring에서 DB 연결하는 방법을 간단히 알아보자.

 

1. gradle 설정

build.gradle에 아래와 같이 의존성을 추가해 주자.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'

	//JDBC
	implementation 'org.springframework.boot:spring-boot-starter-jdbc'

	//mariadb
	runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
}

 

2. DB datasource 설정

Spring project의 application.properties에서 아래와 같이 datasource 정보를 설정해 주자.

spring.datasource.url=jdbc:mariadb://localhost:3306/(db이름)
spring.datasource.username=(id)
spring.datasource.password=(pw)

 

 

위와 같이 간단하게 db 연동을 할 수 있다.


MyBatis 사용 방법

추가로 간단하게 MyBatis 사용을 위한 설정을 알아보자.

1. gradle 설정

build.gradle에 MyBatis 의존성을 추가해 주자.

//MyBatis
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'

 

2. application.properties

application.properties에 아래와 같이 설정해 주자.

#MyBatis mapper.xml 파일 경로
mybatis.mapper-locations=classpath:mapper/**/*.xml
#MyBatis
mybatis.type-aliases-package=com.seoul_wifi_service.domain # data type 설정
mybatis.configuration.map-underscore-to-camel-case=true
#logging.level.hello.board.repository.mybatis=trace

type-aliases-package에는 MyBatis에서 데이터를 바인딩하고, 전달할 때 사용할 클래스(객체)의 패키지 경로를 작성한다.

 

3. Java 코드, xml

Mapper interface

Repository

mapper.xml

파일이 필요하다.

1) Mapper interface

@Mapper
public interface BookmarkMapper {
    void save(Bookmark bookmark);
    Bookmark findById(long id);
    List<Bookmark> findAll();
    void updateBookmarkGroupName(String before, String after);
    void delete(long id);
    void deleteByBookmarkGroupName(String name);
}

2) Repository

@Repository
@RequiredArgsConstructor
public class BookmarkRepository {
    private final BookmarkMapper bookmarkMapper;
    public Bookmark save(Bookmark bookmark){
        bookmarkMapper.save(bookmark);
        return bookmark;
    }
    
    //생략
    //Mapper interface의 메서드들을 모두 사용하여 구현한다.
}

3) mapper.xml

Mapper interface가 존재하는 경로와 동일하게, resources 폴더에 경로를 설정한 뒤 아래와 같은 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.seoul_wifi_service.repository.bookmark.BookmarkMapper">

    <insert id="save" useGeneratedKeys="true" keyProperty="id">
        insert into Bookmark(bookmark_group_name, wifi_manage_number, wifi_name, date_time)
        values(#{bookmarkGroupName}, #{wifiManageNumber}, #{wifiName}, #{dateTime})
    </insert>

</mapper>

 

MyBatis 상세 설명

2023.05.15 - [Database/데이터 접근 기술] - [MyBatis] 마이바티스 기본 사용법

 

[MyBatis] 마이바티스 기본 사용법

MyBatis란? MyBatis는 JdbcTemplate이 제공하는 대부분의 기능을 제공한다. 그러나 JdbcTemplate의 문제점 중 하나인 여러 줄의 String 형 sql을 작성해야 한다는 점을 MyBatis를 이용하여 해결할 수 있다. MyBatis

innovation123.tistory.com

 

반응형