본문 바로가기
개발 수업/Spring

[spring] mybatis 환경 설정

by 오늘 하루s 2023. 8. 9.
728x90
더보기

Day72. 230809

mybatis란?

개발자가 지정한 SQL,저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다.

mybatis는 JDBD로 처리한느 상당부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다.

DB레코드에 원시타입과 Map인터페이스,자바POJO를 설정해서 매핑하기위해 XML과 애노테이션을 사용할 수 있다.

 

mybatis 환경설정

pom.xml>

		<!-- mybatis관련 라이브러리 등록 -->
		<!-- mybatis : mybatis를 위한 라이브러리 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.1.0</version>
		</dependency>
		<!-- mybatis-spring : mybatis와  spring를 연결 라이브러리  -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.1.0</version>
		</dependency>

pom.xml에 mybatis를 위한 라이브러리를 등록해준다.

 

web.xml>

src-main-webapp-WEB-INF안의 web.xml에서 param-value안의 값을 다음과 같이 변경해준다.

<param-value>/WEB-INF/spring/action-mybatis.xml</param-value>

 

/WEB-INF/spring/action-mybatis.xml만들기>

 

새로운 XML파일을 만들어준다.

 

action-mybatis이름으로 경로는 /WEB-INF/spring밑에 만들어준다.

 

File Form은 세번째를 선택해준후 Finish해준다.

 

action-mybatis.xml이 잘 만들어졌다.

 

action-mybatis.xml>

<?xml version="1.0" encoding="UTF-8"?>
	<beans xmlns:tx="http://www.springframework.org/schema/tx"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns="http://www.springframework.org/schema/beans"
	   xmlns:aop="http://www.springframework.org/schema/aop"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
	      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
	      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
	 
	<aop:aspectj-autoproxy/>
	
	<!-- 커넥션 풀 설정  -->
	<bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<!-- 	  <property name="driver" value="${jdbc.driver}" />
	  <property name="url" value="${jdbc.url}"/>
	  <property name="username" value="${jdbc.username}" />
	  <property name="password" value="${jdbc.password}" /> -->
		<property name="driver" value="com.mysql.cj.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/board?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=UTC"/>
    <property name="username" value="jspexam" />
    <property name="password" value="jsppw" />
	</bean>
	
	<!-- modelConfig.xml에는
	     <typeAlias type="패키지명.클래스명"    alias="클래스별칭"/>지정
	      classpath:mybatis/mappers/에는  쿼리문이 있는 xml문서 설정               -->
	<bean id="sqlSessionFactory"   class="org.mybatis.spring.SqlSessionFactoryBean">
	      <property name="dataSource" ref="dataSource" />
	        <property name="configLocation"
	         value="classpath:mybatis/model/modelConfig.xml" />
	      <property name="mapperLocations" value="classpath:mybatis/mappers/*.xml" />
	</bean>
	
	<!-- sqlSession이름으로  bean등록 -->
	<bean id="sqlSession"
	     class="org.mybatis.spring.SqlSessionTemplate">
	   <constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
	</bean>
</beans>

action-mybatis.xml에 커넥션 풀도 등록해주고 bean도 등록해준다.

그리고 sqlSessionFactory에 설정한대로 mybatis/model/modelConfig.xml을 만들어준다.

 

modelConfig.xml>

src/main/resourse/mybatis/model밑에 modelConfig.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>
<!--    		예시
   		<typeAliases>
				  <typeAlias alias="Author" type="domain.blog.Author"/>
				  <typeAlias alias="Blog" type="domain.blog.Blog"/>
				  <typeAlias alias="Comment" type="domain.blog.Comment"/>
				  <typeAlias alias="Post" type="domain.blog.Post"/>
				  <typeAlias alias="Section" type="domain.blog.Section"/>
				  <typeAlias alias="Tag" type="domain.blog.Tag"/>
			</typeAliases> -->
			<typeAliases>
				<typeAlias alias="MemberDTO" type="com.mycom.member.domain.MemberDTO"/>
			</typeAliases>
   </configuration>

modelConfig.xml에서 typeAliases설정을 해준다.

typeAliases을 설정해주면 type의 값을 Aliases를 이용해 간단히 사용할 수 있다.

728x90