pom.xml에 데이터베이스 라이브러리 의존성 주입

<!-- 데이터베이스 라이브러리 의존 관계 정의시작 -->
		<!-- XML로 쿼리를 작성하게 해주는 라이브러리 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.10</version>
		</dependency>
		<!-- 스프링과 mybatis를 연동하게 해주는 라이브러리 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>2.0.4</version>
		</dependency>
		<!-- 스프링에서 JDBC(Java DataBase Connectivity) -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
		<!-- 
			dbcp : database connection pool => 커넥션 객체를미리 만들어놓고 쓰고 반납
					미리 커넥션 객체를 여러개 만들어 놓고 가용해야할때 커넥션을들고가서 사용하다가 다시 반납한다.
					최근에는 hikaricp를 사용하는경우도 있음
		 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-dbcp2</artifactId>
			<version>2.7.0</version>
		</dependency>
		<!-- 로깅을 위한 라이브러리, 쿼리를 console이나 파일 로드로 볼 수 있다. -->
		<dependency>
			<groupId>org.bgee.log4jdbc-log4j2</groupId>
			<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
			<version>1.16</version>
		</dependency>
		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc8</artifactId>
			<version>21.1.0.0</version>
		</dependency>
	<!-- 데이터베이스 라이브러리 의존 관계 정의끝 -->

해당 의존성 주입 한 후 Maven update 진행

Untitled

root-context.xml 파일에 DB 관련 bean 객체 설정 추가

스프링 설정이란?

<aside> 💡 ✅ view와 관련되지 않은 객체를 정의

✅ Service(비즈니스 기능), DAO(Repository: 저장소), DB 등 비즈니스 로직과 관련된 설정

BasicDataSource dataSource = new BasicDataSource();

dataSource.setDriverClassName() = "oracle.jdbc.drive.OracleDriver";

</aside>

<!-- dataSource : 데이터베이스와 관련된 정보를 설정한다. -->
	 <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="dev"/>
	 	<property name="password" value="java"/>
	 </bean>
	 
	 <!-- 
	 	데이터베이스와 연결을 맺고 끊어질 때까지의 라이프 사이클을 관리해주는 SqlSessionTemplate 객체를생성한다.
	 	1) dataSource
	 	2) Mapper xml의 위치 선정
	  -->
	 <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>
	 
	 <!-- 
	 	데이터베이스에 개발적으로 쿼리를 실행시키는 객체
	 	이 객체를 통해서 query를 실행한다.
	  -->
	 <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
	 	<constructor-arg name="sqlSessionFactory" index="0" ref="sqlSessionFactory"/>
	 </bean>

	<!-- 
	 	Mapper 인터페이스 설정
	 	개발자가 직접 DAO를 설정하지 않아도 자동으로 Mapper 인터페이스를 활용하는 객체를 생성하게된다.
	  -->
	 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	 	<property name="basePackage" value="kr.or.ddit.mapper"/>
	 </bean>

Mapper와 Alias 설정

<?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>
	<!-- 
		[마이바티스] 스프링에서 "_"를 사용한 컬럼명 사용 시 (BOOK 테이블의 BOOK_ID와 같은 컬럼)
		카멜케이스로 읽어주는 역할(bookId와 같이)
		ex) 테이블 컬럼명이 member_id인 경우 jsp화면단에서 이 값을 사용시 memberId로 사용할 수 있다.
	 -->
	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
	
	<!-- 자주 사용하는 타입의 별칭을 셋팅 -->
	<typeAliases>
<!-- 	<typeAlias type="클래스명(패키지구조를 포함한)" alias="별칭명"/> -->
	</typeAliases>
</configuration>

sqlmap 폴더 생성 후 blank_SQL.xml 을 생성하는 이유

  1. bean 설정 때문에 최초 서버 실행시 빈 것이라도 있어야 오류 안나기 때문
  2. 복사해서 원하는 mapper를 만들어 쓸 수 있기 때문