Spring Boot+MyBatis+PostgreSQL로 데이터 획득까지

조금 전에는 그렇게 고민하지 않았지만,
최근 했더니 의외로 손질했기 때문에, 자신용 메모에.

준비


  • Java8 설치
  • eclipse 설치
  • PostgreSQL11 설치

  • Eclipse에 Spring Tool 3 Add-On (STS) 설치



    이클립스 마켓 플레이스에서 sts를 검색하고 설치 버튼을 누르십시오.


    전용 개발 툴(STS)을 사용해도 좋지만,
    이번에는 플러그인을 사용합니다.

    Spring Boot 프로젝트 만들기



    신규 → 프로젝트 → Spring 스타터 프로젝트를 선택하고,



    의존관계는 이런 식으로.



    완료 누름으로 프로젝트 작성은 OK.

    폴더 구성




    이런 식으로 갑니다.

    수업 만들기



    1-1 컨트롤러 작성



    HelloController.java
    @Controller
    public class HelloController {
    
        @Autowired
        private HelloService helloService;
    
        @RequestMapping(value="hello")
        public String init(Model model) {
    
            List<HelloBean> list = helloService.selectName();
            model.addAttribute("list",list);
    
            return "hello";
        }
    }
    

    서비스 작성



    HelloSerivce.java
    @Service
    public class HelloService {
    
        @Autowired
        private HelloMapper helloMapper;
    
        public List<HelloBean> selectName(){
            return helloMapper.selectEmpAll();
        }
    }
    

    Dao 작성.


    CREATE TABLE emp_name(
    id int,
    name varchar(20)
    )
    

    상기 내용으로 테이블을 작성.
    테스트용이므로 PRIMARY도 UNIQUE도 우선 설정 없이.

    HelloMapper.java
    @Mapper
    public interface HelloMapper {
    
        List<HelloBean> selectEmpAll();
    }
    

    HelloMapper.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.demo.mapper.HelloMapper">
        <select id="selectEmpAll" resultType="com.demo.bean.HelloBean">
            select * from
            emp_name
        </select>
    </mapper>
    

    html 작성



    hello.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>社員番号</th>
                <th>社員名</th>
            </tr>
            <tr th:each="emp : ${list}">
                <td th:text="${emp.id}"></td>
                <td th:text="${emp.name}"></td>
            </tr>
        </table>
    </body>
    </html>
    

    환경설정



    mybatis config를 만듭니다.
    테이블의 컬럼명이 스네이크 케이스가 되어 있는 경우는 카멜 케이스로 변환해,
    Bean의 변수명에 연결해 주는 설정을 추가.
    이번에는 특별히 사용하지 않지만 기억하고 싶다.

    mybatis-config.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
    </configuration>
    

    방금 만든 mybatis-config를 불러오기

    SampleApplication.java
    package com.demo;
    
    import javax.sql.DataSource;
    
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.core.io.ClassPathResource;
    
    @SpringBootApplication
    public class SampleApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SampleApplication.class, args);
        }
    
        @Bean
        public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
            final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
            sessionFactory.setDataSource(dataSource);
            // コンフィグファイルの読み込み
            sessionFactory.setConfigLocation(new ClassPathResource("/mybatis-config.xml"));
    
            return sessionFactory.getObject();
        }
    }
    

    DB와의 연결 설정을 추가.

    application.properties
    spring.datasource.driver-class-name=org.postgresql.Driver
    spring.datasource.url=jdbc:postgresql://localhost:5432/sample
    spring.datasource.username=postgres    #自身の環境に合わせて 
    spring.datasource.password=postgres    #自身の環境に合わせて
    

    이상으로 완료.

    실행



    프로젝트를 마우스 오른쪽 버튼으로 클릭하고 실행 → maven install
    BUILD SUCCESS가 나오면 다시 마우스 오른쪽 버튼을 클릭하고 실행 → Spring boot 애플리케이션 선택
    브라우저에서 http://localhost:8080/hello을 엽니다.



    이런 느낌이 되면 OK.

    소감



    SpringMVC에 비해 설정이 줄어 들었습니까?
    익숙해지면 알기 쉽다고 생각합니다.

    좋은 웹페이지 즐겨찾기