SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득①

목적



자기 학습용・초보자용 메모.
이번에는 mybatis에서 DB 액세스를 하여 데이터를 취득하는 샘플 프로그램을 작성한다.

개요



  • MySQL 설치

  • 데이터베이스 작성

  • 애플리케이션 구현

  • MySQL 설치



    MySQL을 설치합니다.

    ※설치 방법에 대해서는 아래 링크 참조
    DBOnline

    데이터베이스 작성



    애플리케이션에서 작성할 데이터베이스 작성
    A5:SQL MK-2 을 사용합니다.

    ※데이터베이스의 접속 방법에 대해서는 생략합니다만 아래 링크를 참조
    데이터베이스에 연결하는 방법

    테이블 만들기



    그냥 표시하기 때문에 간단한 테이블을 만듭니다.

    【userinfo(사용자 정보)】


    논리 이름
    논리 이름
    금형
    문자 수
    제약


    id
    ID
    integer

    NOT NULL, PRIMARY KEY

    이름
    이름
    varchar
    255

    sex
    성별
    varchar
    1


    create table userinfo (id integer NOT NULL PRIMARY KEY,
                           name varchar(255),
                           sex char(1)); 
    

    다음은 데이터를 만듭니다.
    INSERT INTO userinfo VALUES (1,'来栖翔','男');
    INSERT INTO userinfo VALUES (2,'小野寺梓','女'); 
    

    만들 수 있었던 것처럼 확인 ...
    SELECT * FROM userinfo;
    



    확인할 수 있었다 (๑˃̵ᴗ˂̵)و 야시!

    애플리케이션 구현



    응용 프로그램을 만듭니다.
    그런 다음 라이브러리를 선택합니다. 선택한 것은 다음과 같습니다.


    항번
    도서관


    1
    Spring Boot DevTools

    2
    롬복

    3
    Spring Configuration Processor

    4
    MyBatis Framework

    5
    MySQL 드라이버

    6
    Thymeleaf

    7
    Spring Web





    패키지 탐색기에 프로젝트가 표시되는 ╭(·ㅂ·)و


    폴더 구성





    application.properties 만들기



    application.properties
    #MySQLのドライバ設定
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    #接続用URL
    spring.datasource.url=jdbc:mysql://localhost/userinfo?serverTimezone=JST
    #ユーザ名
    spring.datasource.username=user1
    #パスワード
    spring.datasource.password=p@ssword
    

    클래스와 인터페이스 만들기



    entity, mapper, controller를 만듭니다.
    ·entity:변수와 그 setter, getter만을 가지는 클래스
    MyBatis는이 클래스에 테이블의 데이터를 저장합니다.
    · 맵퍼 : 인터페이스이지만 구상 클래스는 MyBatis가 XML SQL 정보 등을 사용하여 자동으로 작성합니다.
    ・controller:MyBatis가 자동으로 생성한 매퍼의 구상 클래스를 Spring이 DI 해 준다

    UserInfo.java
    package org.app.dbapp.entity;
    
    public class UserInfo {
    
        private String id;
        private String name;
        private String sex;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    }
    

    UserInfoMapper.java
    package org.app.dbapp.mapper;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Mapper;
    import org.app.dbapp.entity.UserInfo;
    
    @Mapper
    public interface UserInfoMapper {
        List<UserInfo> selectAll();
    }
    

    DemoController.java
    package org.app.dbapp.controller;
    
    import java.util.List;
    
    import org.app.dbapp.entity.UserInfo;
    import org.app.dbapp.mapper.UserInfoMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class IndexController {
    
        @Autowired
        UserInfoMapper userInfoMapper;
    
        @RequestMapping
        public String index(Model model) {
            List<UserInfo> list = userInfoMapper.selectAll();
            model.addAttribute("userInfo", list);
            return "index";
        }
    }
    

    XML 파일 만들기



    resource 아래에 만든 폴더에 SQL을 포함하는 XML 파일을 만듭니다.

    UserInfoMapper.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="org.app.dbapp.mapper.UserInfoMapper">
        <select id="selectAll" resultType="org.app.dbapp.entity.UserInfo">
            SELECT * FROM userinfo;
        </select>
    </mapper>
    

    Thymeleaf 만들기



    그런 다음 resources/templates 아래에 Tymeleaf를 배치합니다.

    index.html
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <table border="1">
            <tr>
                <th>ID</th>
                <th>名前</th>
                <th>性別</th>
            </tr>
            <tr th:each="info: ${userInfo}">
                <td th:text="${info.id}"></td>
                <td th:text="${info.name}"></td>
                <td th:text="${info.sex}"></td>
            </tr>
        </table>
    </body>
    </html>
    

    실행



    Spring Boot App에서 시작하여 http://localhost:8080에 액세스하면 이러한 화면이 표시됩니다.


    다음 번



    SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득②

    좋은 웹페이지 즐겨찾기