Spring

spring boot + mybatis 초간단 예제

Rust Choi 2020. 1. 20. 10:33

인텔리J에서 springboot 프로젝트 생성 (web, thymeleaf 템플릿 선택)

오라클 DB 준비.

 

member 테이블 생성.

대략 이런 구조

 

pom.xml에 디펜던시 추가

        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>

        <!-- oracle ojdbc -->
        <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>19.3.0.0</version>
        </dependency>

 

application.properties 설정 추가 (.yml로 해도 됨)

spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/ORCL
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver


mybatis.configuration.map-underscore-to-camel-case=true
mybatis.type-aliases-package=com.test
mybatis.mapper-locations=/mapper/*.xml

 

SpringApplication.java에 설정 어노테이션 추가

@SpringBootApplication
@Configuration
@MapperScan(basePackages = "com.test", annotationClass = Mapper.class)
public class Demo2Application {
}

Member.java에 @Alias 추가. (필수는 아님. resultType을 간단하게 쓰기 위함.)

@Alias("Member")
public class Member {

    private String id;
    private String name;
    private String email;
}

매퍼 xml 작성

<mapper namespace="com.test.member.repository.MemberMapper">


    <select id="selectMemberList" resultType="Member">
        SELECT
            ID,
            NAME,
            EMAIL
          FROM MEMBER
    </select>

</mapper>

매퍼 java 작성 (인터페이스)

@Mapper
public interface MemberMapper {

    List<Member> selectMemberList();

}

주의사항 - 매퍼 java파일과 xml파일은 파일명이 같아야 함. MemberMapper.java, MemberMapper.xml