Spring Boot 프로젝트에서 Mybatis로 Mysql 데이터베이스(DB) 연동하는법

2021. 10. 5. 16:31·Spring Framework

 

사용자가 책 제목을 입력하면 Mysql테이블에 책이 저장되는 로직을 만듦으로써 Spring Boot 프로젝트에서 Mybatis로 Mysql을 연동하는 법을 알아보겠습니다. 

 

 

 

1. porm.xml에 mybatis 와 mysql커넥터 그리고 jdbc 의존성을 추가하여줍니다.

 

#porm.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
 
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
Colored by Color Scripter
cs

 

 

 

 

 

2. application.properties 파일에 mysql주소와 사용자이름,비밀번호,mybatis mapper-location 경로를 지정해줍니다.

 

#application.properties

1
2
3
4
5
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring?serverTimezone=Asia/Seoul
spring.datasource.username=root
spring.datasource.password=mysql
mybatis.mapper-locations=mappers/**/*.xml
Colored by Color Scripter
cs

 

 

 

 

 

3. repository에서 @Mapper어노테이션을 사용할 수 있도록 아래 코드와 같이 MainApplication클래스에서 @MapperScan 어노테이션을 사용하여줍니다.

 

#MybatisTestApplication.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.example.MybatisTest;
 
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
 
@MapperScan(basePackageClasses = MybatisTestApplication.class)
@SpringBootApplication
public class MybatisTestApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(MybatisTestApplication.class, args);
    }
}
Colored by Color Scripter
cs

 

 

 

 

 

4. repository패키지를 만들고 그 안에 Mapper인터페이스를 생성한뒤 책을 저장할수있는 메서드를 정의해줍니다.

 

#IBookMapper.java

1
2
3
4
5
6
7
8
9
10
11
package com.example.MybatisTest.repository;
 
import org.apache.ibatis.annotations.Mapper;
 
@Mapper
public interface IBookMapper {
    
    //책 저장
    public void insert(String book);
}
 
Colored by Color Scripter
cs

 

 

 

 

 

5. application.properties 파일에 mybatis.mapper-locations을 mappers/**/*.xml로 지정하여 주었기 때문에 src/main/resources/ 이 경로에 mappers폴더를 생성하여주고 그곳에 BookMapper.xml파일을 생성하여줍니다.

mapper태그의 namespace속성값은 Mapper인터페이스를 생성한 경로로 지정해주어야 생성한 Mapper인터페이스를 implements 할수있게됩니다. 그리고 SQL Query와 같이 삽입할려면 insert태그, 수정할려면 update태그, 삭제할려면 delete태그, 조회할려면 select태그를 사용해주어야 합니다.

 

 

#BookMapper.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?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.MybatisTest.repository.IBookMapper">
 
<insert id="insert">
    insert into mybatis(book)
    values(#{book});
</insert>
 
</mapper>
Colored by Color Scripter
cs

 

 

 

 

 

▶ service부분은 앞서 구현했던 Mapper인터페이스와 로직이 동일하기때문에 설명하는건 생략하고 controller로 넘어가겠습니다

 

6. Controller에서 사용자에게 입력받은 책제목을 DB테이블에 저장하기위해 service로 넘겨주는 로직을 작성하여줍니다.

 

#BookController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.example.MybatisTest.controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
 
import com.example.MybatisTest.service.BookService;
 
@Controller
 
public class BookController {
 
    @Autowired
    BookService service;
    
    @GetMapping("/insert")
    public String insert() {
        return "DbTest";
    }
    
    @PostMapping("/insert2")
    public void insertt(String book) {
        service.insert(book);
    }
}
 
Colored by Color Scripter
cs

 

 

 

 

 

 

7. 사용자 입장에서 첵 제목을 입력하였을때 정상적으로 DB테이블에 첵제목이 저장되는것을 확인할 수 있습니다.

 

 

(1) 책 제목 입력

 

(2) Mysql테이블에 저장확인

 

저작자표시 (새창열림)

'Spring Framework' 카테고리의 다른 글

[Spring Boot] REST-API 공통 에러(Exception) 처리 개발 과정  (0) 2023.03.17
[Spring Boot] REST-API 공통 Response 값 포맷 개발 과정  (0) 2023.03.15
(Spring,JSP) JSP에서 날짜 값을 fmt태그를 사용해 포맷하는법  (0) 2021.09.24
(Spring)Postman를 사용해서 Spring으로 구축한 REST API 서버가 정상작동하는지 테스트 하는 방법  (0) 2021.09.20
Spring Boot에서 JSP 연동(사용)하는 방법  (0) 2021.09.19
'Spring Framework' 카테고리의 다른 글
  • [Spring Boot] REST-API 공통 에러(Exception) 처리 개발 과정
  • [Spring Boot] REST-API 공통 Response 값 포맷 개발 과정
  • (Spring,JSP) JSP에서 날짜 값을 fmt태그를 사용해 포맷하는법
  • (Spring)Postman를 사용해서 Spring으로 구축한 REST API 서버가 정상작동하는지 테스트 하는 방법
「김동윤」
「김동윤」
개발을 하면서 기록하고 공유하는 공간입니다
  • 「김동윤」
    평범한 개발 블로그
    「김동윤」
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • DB (3)
      • Git (1)
      • Spring Framework (6)
      • Spring Framework Error (9)
      • JS (2)
        • node.js (1)
        • react (1)
      • 머신 러닝 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 개인 github
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
「김동윤」
Spring Boot 프로젝트에서 Mybatis로 Mysql 데이터베이스(DB) 연동하는법
상단으로

티스토리툴바