Spring에서 MyBatis를 사용하기 위해
세 개의 기능이 필요하다.
1. Spring 에서 MyBatis 기능을 쓰기 위한 라이브러리 설정 (Spring 기능 확장)
2. Spring+MyBatis 붙여주는 라이브러리 (브릿지 라이브러리)
3. Goole MyBatis 라이브러리 (마이바티스 라이브러리) + DBCP + MySQL Driver
총 다섯 가지의 기능이 필요하다.
아래 코드를 복사해서
pom.xml에 mysql을 설정했던 <dependencies> 부분에 붙여주면 된다.
MySQL이 반복되지 않게 한 번 확인해준다.
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
어노테이션을 쓸 수 없을 때
root-context.xml에서 한다.
아래 코드를 root-context.xml에 <beans> 사이에 추가해준다.
<!-- myBatis의 싱글톤 객체 생성 -->
<bean id="my" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="config"></constructor-arg>
</bean>
<!-- myBatis의 설정 객체 생성 -->
<bean id="config" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dbcp"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!-- dbcp의 싱글톤 객체 생성 -->
<!-- db프로그램의 2단계까지 담당. driver설정, db연결 -->
<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/school?characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>
</bean>
구조를 보면 MyBatis 안에 Config가 끼어있고,
그 안에 DBCP와 MyBatis-Config.xml파일이 끼어져있는 걸 알 수 있다.
러시아 인형 마트료시카 마냥.
이제 코드가 어떻게 단축되는 지 확인해보겠다.
강사님께서 보내주신 파일을
src/main/resources 안에 mapper 폴더를 만들어 넣고
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>
<!-- SQL문 정의할 때 VO표현을 간단하게 하고 싶은 경우.
별명을 지어서 사용 -->
<typeAliases>
<typeAlias type="com.multi.mvc04.MemberDTO" alias="memberDTO"></typeAlias>
<!-- <typeAlias type="com.multi.mvc003.BbsDTO" alias="bbsDTO"></typeAlias>
<typeAlias type="com.multi.mvc003.BookDTO" alias="bookDTO"></typeAlias> -->
</typeAliases>
<mappers>
<!-- SQL문 정의하는 파일들의 목록을 지정. 테이블당 한개 사용 -->
<mapper resource="mapper/memberMapper.xml" />
<!-- <mapper resource="mapper/bbsMapper.xml" />
<mapper resource="mapper/bookMapper.xml" /> -->
</mappers>
</configuration>
기존에 이랬던 MemberDAO insert코드가
이렇게 한 줄로 줄었다.
MyBatis로 코드를 단축하기 위해서는
아래 사진에서처럼 다섯 가지가 만족되어야한다.
박스 안 코드 외에는 무시
'Back > Spring' 카테고리의 다른 글
Day52_MyBatis CRUD 구조 (0) | 2023.07.06 |
---|---|
Day47_Library & Framework 차이점 (0) | 2023.07.04 |
Day46_STS로 CRUD 회원가입 페이지 구현_0703 (0) | 2023.07.03 |
Day42_Spring 정리 (0) | 2023.06.30 |
Day41_[Mac OS]Spring/STS 설치 및 세팅 (0) | 2023.06.30 |