본문 바로가기

IT

Spring 에서 MyBatis로 DB연결

반응형

1. pom.xml 에 라이브러리 추가

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
   </dependency>
              
        <dependency> 
        	<groupId>org.springframework</groupId> 
        	<artifactId>spring-jdbc</artifactId>  
        </dependency> 
      
		<dependency>
		    <groupId>org.mariadb.jdbc</groupId>
		    <artifactId>mariadb-java-client</artifactId>
		    <version>2.4.1</version>
		</dependency>

 

 

 

2. src/main/resource/application.properties 설정추가

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
#없으면 디폴드 포트 8080 임
server.port = 80 
spring.devtools.livereload.enabled=true
spring.thymeleaf.cache=false

# mybatis 매핑 type을 짧게 쓰기 위한 설정 (이 하위 디렉터리의 클래스들은 모두 myBatis Mapper XML에서 parameter type 이나 result Type으로 사용할 수 있다.)
#mybatis.type-aliases-package=com.bpa.main.model
# mybatis 매퍼 위치 추가. classpath:를 쓰면  src/main/resource 가 루트가 됨 (src/main/resources/sql/mariadb/admin-sql.xml)
mybatis.mapper-locations=classpath:sql/**/*.xml

# mapper 이하를 로깅 위치로 설정.(mapper interface 패키지 경로)
logging.level.com.bpa.main.dao=TRACE

# db 연결정보 추가
spring.datasource.url=jdbc:mariadb://localhost:3306/bpa
spring.datasource.username=root
spring.datasource.password=1111
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

 

 

3. sql xml 추가 (src/main/resources/sql/mariadb/admin-sql.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.bpa.main.dao.AdminDBMapper"> 
    
      <select id="getUserList" resultType="map">
      	SELECT * FROM BPA_USER
      </select>
</mapper>

<mapper namespace="com.bpa.main.dao.AdminDBMapper"> 은 실제 interface 경로이며 getUserList 은 실제 메소드임

 

 

4. xml 과 메핑될 interface 추가(com.bpa.main.dao.AdminDBMapper )

package com.bpa.main.dao;

import java.util.List;

public interface 	AdminDBMapper {
  public List getUserList();
}

 

 

5. spring boot Application 에 MapperScan 추가

@SpringBootApplication
@MapperScan(basePackages = "com.bpa.main.dao") /* AdminDBMapper의 위치*/
@EnableAsync
public class BpaApplication {

	public static void main(String[] args) {
		SpringApplication.run(BpaApplication.class, args);
	}

}

 

 

6. 호출하기

@Autowired
	private AdminDBMapper adminDBMapper;

@Override
	public List getUserList() {
		// TODO Auto-generated method stub
		return adminDBMapper.getUserList();
	}

 

 

application.properties 에서 sql xml 위치 지정해주고 xml 에서 namespace ,id 에 해당하는 interface 만들고 호출하면 됨 interface 위치는 springboot Application 에서 @MapperScan 로 지정함 admin-sql.xml 과 com.bpa.main.dao.AdminDBMapper 와 매핑이 되어 실행되는 구조 임

 

반응형