MyBatis
SQL Mapper Framework
Query 기반 웹 애플리케이션을 만들 때 JDBC를 직접 이용할 경우 반복적인 코드, 로직 코드와 query 분리 어려움 등의 문제점이 많다.
따라서 MyBatis 를 이용하면 SQL query 를 xml 파일에 작성하여 가독성을 높이고, 원하는 객체 형태로 데이터를 변환해서 쉽게 가져올 수 있다.
MyBatis 연동
1.
src/main/java/com. ... / *Application.java 에 다음 코드 추가하기
package com. /* 입력 */ ;
import java.io.IOException;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@MapperScan(basePackages="com. /* 입력 */ .*")
@SpringBootApplication
public class SpringExampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringExampleApplication.class, args);
}
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
Resource[] res = new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*Mapper.xml");
sessionFactory.setMapperLocations(res);
return sessionFactory.getObject();
}
}
2.
src/main/resources/application.properties 에 다음 코드 추가하기
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ <!-- 입력 -->
spring.datasource.username= <!-- 입력 -->
spring.datasource.password= <!-- 입력 -->
3.
Mapper 폴더 생성하기
- src/main/resources 에 mappers 폴더 생성한다.
- 1. 의 SpringExampleApplication.java 에서 mapper 파일 위치를 "classpath:mappers/*Mapper.xml" 로 설정했다.
- 따라서 mappers 폴더 안의 xml 파일들은 끝이 Mapper 이고, 확장자가 .xml 이어야 한다.
'웹개발 > spring' 카테고리의 다른 글
[Spring] JSP View 연동 (0) | 2022.08.11 |
---|---|
[Spring] 객체 지향 설계와 Spring (0) | 2022.08.04 |
[Spring] Annotation 종류 (0) | 2022.08.03 |