본문 바로가기
Study Hard/HW

mybatis 스프링 초기설정

by 코플+ 2023. 5. 18.

1. MAVEN 설정

pom.xml 수정

      <!-- Database settings -->
      <!-- 
         mybatis는 xml로 쿼리를 작성하게 해주는 라이브러리
         쿼리를 문자열로 코딩하지 않고 xml을 사용해서 관리하게 해준다.
       -->
      <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
         <version>3.5.4</version>
      </dependency>
      
      <!-- 
         mybatis-spring은 스프링 mybatis를 연동하게 해주는 라이브러리
      -->
      <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis-spring</artifactId>
         <version>2.0.4</version>
      </dependency>
      
      <!--  
         jdbc는 자바에게 데이터베이스에 접속하기 위한 api
         spring-jdbc는 스프링에서 jdbc를 통해 데이터베이스와 연결할 수 있게 해준다.
      -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>${org.springframework-version}</version>
      </dependency>
      
      <!--  
         jdbc2는 데이터베이스 커넥션 풀
         데이터베이스 서버와 웹 서버는 서로 다른 프로그램이고,
         실무에서는 전혀 다른 컴퓨터에 설치되어 있을 가능성이 높음
         서로 다른 컴퓨터와 다른 프로그램이 통신을 하기 위해서는 서로 연결을 맷는 과정이 필요
         미리 데이터베이스와 연동하기 위한 길을 만들어놓는 라이브러리
         요즘은 dbcp2보다 hikaricp를 자주 사용하기도 함
      -->
      <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-dbcp2</artifactId>
         <version>2.7.0</version>
      </dependency>
      <!-- 
         로깅을 위한 라이브러리
         데이터베이스에 연동하는 쿼리를 콘솔이나 파일 로그로 볼 수 있게 해준다.
      -->
      <dependency>
         <groupId>org.bgee.log4jdbc-log4j2</groupId>
         <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
         <version>1.16</version>
      </dependency>
      
      <!-- 
         oracle 데이터베이스 연동 라이브러리
      -->
      <dependency>
         <groupId>com.oracle.database.jdbc</groupId>
         <artifactId>ojdbc8</artifactId>
         <version>21.1.0.0</version>
      </dependency>
      
      
      
      <!-- Database settings End-->

 

 

 

 

MAVEN 클린 후  빌드

 

2. Spring의 root-context.xml 추가

	<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
		<property name="username" value="yse"/>
		<property name="password" value="java"/>
	</bean>
	
	<bean id = "sqlSessionFactory" class ="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="mapperLocations" value="classpath:/sqlmap/**/*_SQL.xml"/>
		<property name="configLocation" value="/WEB-INF/mybatisAlias/mybatisAlias.xml"/>
	</bean>
	
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory"/>
	</bean>

 

 

3. 설정 xml 추가

리소스폴더의 sqlmap/blank_SQL.xml 생성(더미데이터)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="Blank"></mapper>

 

WEB-INF/mybatisAlias/mybatisAlias.xml 생성

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 
		[mybatis 설정 참고 사이트]
		 - https://mybatis.org/mybatis-3/getting-started.html
		 - configuration dtd를 설정할 수 있도록 제공
		 
		 configuration  내에서 설정할 항목 2가지
		 - 카멜 케이스 설정
		 - 자주 사용하는 타입의 별칭 설정
	 -->
	 <!-- 
	 	# 카멜 케이스 설정
	 	- mapUnderscoreToCamelCase true설정
	 	[마이바티스] 스프리엥서 "_"를 사용한 컬럼명을 사용 시, (BOOK 테이블의 BOOK_ID) 카멜케이스로 읽어줍니다.
	 	> BOOK_ID를 bookId로 읽어줌
	 	ex) 테이블 컬럼명이 member_id인 경우 jsp화면에서 이 값을 출력 시 memberId로 사용할 수 있다.
	  -->
	 <settings>
	 	<setting name="mapUnderscoreToCamelCase" value="true"/>
	 </settings>
	 
	 <!-- 자주 사용하는 타입의 별칭을 셋팅 -->
	 <typeAliases>
<!-- 	 	<typeAlias type="패키지를 포함한 클래스명" alias="내가 사용한 별칭"/> -->
	 </typeAliases>

</configuration>

댓글