mybatis 세팅

Jiwon Park·2023년 3월 16일
0

1.root_context.xml (공통)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
	http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	<!-- Root Context: defines shared resources visible to all other web components -->
		
	<!-- mysql연결 -->
	<bean id="dataSource" 
		  class="org.apache.commons.dbcp2.BasicDataSource"
		  destroy-method="close">
		<property name = "driverClassName" value = "com.mysql.cj.jdbc.Driver"/>
		<property name = "url" value = "jdbc:mysql://localHost:3306/pjwon1120change?serverTimezone=UTC"/>
		<property name="username" value = "studytime"/>
		<property name="password" value = "0000"/>
	</bean>	
	<bean id="sqlSessionFactory"
		  class="org.mybatis.spring.SqlSessionFactoryBean">
		  <property name="dataSource" ref="dataSource" />
		  <property name="mapperLocations"
		   value="classpath:/com/carshop/mapper/**/*_SQL.xml" />
	 </bean>
 	 <context:component-scan base-package="com.carshop.service" />
</beans>

MapperInterface방식 : 인터페이스의 패키지 경로를 등록 한다.

->구현 클래스 필요하지 않음(맵퍼 xml과 인터페이스를 직접 연결)

<!-- myBatis mapper -->
	<mybatis-spring:scan base-package="com.carshop.mapper"/>	

맵퍼.xml의 mapper태그 namaspace에 com.carshop.mapper.'맵퍼인터페이스명'을 선언해주면 해당 인터페이스와 연결된다.
맵퍼.xml의 각 쿼리문 태그의 id명은 맵퍼인터페이스의 메서드이름으로 지정한다.

**xml없이 인터페이스 메소드 위에 어노테이션으로도 쿼리문 작성 가능


SqlSessionTemplate 방식

 <bean id="sqlSessionTemplate"
		  class="org.mybatis.spring.SqlSessionTemplate">
		  <constructor-arg index="0" ref="sqlSessionFactory" />
	 </bean>

맵퍼 클래스에 직접 sqlSessionTemplate 객체를 선언하고 의존성을 주입하여 쿼리문을 수행한다.
메소드의 인자값으로 key를 넣어주며 이는 맵퍼.xml의 각 쿼리문 태그의 id속성과 동일하게 하여 서로 연동한다.


pom.xml

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis</artifactId>
		    <version>3.5.6</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis-spring</artifactId>
		    <version>2.0.4</version>
		</dependency>
			<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-jdbc</artifactId>
		    <version>5.3.19</version>
		</dependency>
			<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
		<dependency>
		    <groupId>org.apache.commons</groupId>
		    <artifactId>commons-dbcp2</artifactId>
		    <version>2.7.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		    <groupId>mysql</groupId>	
		    <artifactId>mysql-connector-java</artifactId>
		    <version>8.0.28</version>
		</dependency>  
		<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
		<dependency>
		    <groupId>org.bgee.log4jdbc-log4j2</groupId>
		    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
		    <version>1.16</version>
		</dependency>
profile
안녕하세요

0개의 댓글