본문 바로가기
Back/Spring

Day49_Spring에서 MyBatis 사용하기 위한 세팅

by uxia 2023. 7. 5.

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파일이 끼어져있는 걸 알 수 있다.

 

러시아 인형 마트료시카 마냥.

출처 : google 검색

 

 


 

 

이제 코드가 어떻게 단축되는 지 확인해보겠다.

 

강사님께서 보내주신 파일을

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