여백에 도장 찍기

Spring boot - myBatis 본문

Web Framework/Spring Boot

Spring boot - myBatis

Linzyseo 2019. 7. 8. 13:26

 

Spring boot 에 mssql db를  mybatis 이용하여 연동하는 부분을 살펴보자. 

 

1. pom.xml 에 dependency 추가. 

- mybatis와 sqlserver 관련 dependency를 추가하면 된다. 

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
  	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.2</version>
</dependency>
<dependency>
	<groupId>com.microsoft.sqlserver</groupId>
	<artifactId>sqljdbc4</artifactId>
	<version>4.0</version>
</dependency>

 

2. Database 관련 Config를 추가한다. 

@Configuration
@MapperScan( value="analysis.data.system.mapper")
public class DatabaseConfig {

    public static final String MAPPER_LOCATION = "classpath:mybatis/*.xml";

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ApplicationContext applicationContext) throws Exception {

        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources(MAPPER_LOCATION));

        return sqlSessionFactoryBean.getObject();
    }
}

 

3. src/main/resources/mybatis/ 디렉터리를 생성하여 .xml mapper 파일들을 생성해서 넣도록 한다. 

   src/main/java/analysis.data.system/mapper 디렉터리 하위에는 기능별 Mapper java file을 넣는다. 

 

각각의 파일은 다음과 같은 형태를 갖는다. 

 > src/main/java/analysis.data.system/mapper/UserMapper

package analysis.data.system.mapper;

import analysis.data.system.model.UserVO;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {
    UserVO getUserList();

}

 

 > src/main/resources/mybatis/UserMapper.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="analysis.data.system.mapper.UserMapper">
    <select id="getUserList" resultType="analysis.data.system.model.UserVO">
        SELECT [id],[password],[name],[dept_id] FROM [dbo].[user]
    </select>
</mapper>

 

UserVO.java

package analysis.data.system.model;

import lombok.Data;


@Data
public class UserVO {

    private String id;
    private String password;
    private String name;
    private String dept_id;

}

 

HomeController.java

@RestController
public class HomeController {

    @GetMapping("/users")
    public UserVO getAllUsers() {
        return userService.getAllUsers();
    }
    
}

'Web Framework > Spring Boot ' 카테고리의 다른 글

HATEOAS  (0) 2019.07.14
SLF4J  (0) 2019.07.09
Spring boot - MSSQL 연동 설정  (0) 2019.07.04
Spring Security - configure method override  (0) 2019.07.03
Spring Boot - 웹 디렉터리 생성 및 설정  (0) 2019.07.03
Comments