pom.xml 수정 (Maven 설정)
mybatis나 jdbc 같은 DB연동관련 dependency를 추가해준다.
<!-- 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-->
root-context.xml DB설정 추가
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!--
데이터베이스 관련 정보 설정
데이터 소스
- 데이터베이스 관련 정보를 데이터소스(datasource)라고 한다.
jdbc:oracle:thin:@//localhost:1521/yse
- jdbc를 이용하여 oracle 드라이버로 현재 localhost 데이터베이스 yse에 접속한다는 뜻
-->
<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>
<!--
sqlSessionFactory는 데이터베이스와 연결을 맺고 끊어질 때까지의 라이프 사이클을 고나리하는 sqlSession 객체를 만든다.
sqlSessionFactory 객체의 프로퍼티는 총 두가지가 존재한다.
1) 데이터소스를 설정하는 프로퍼티
2) mapper 파일의 위치를 지정하는 프로퍼티
mapper 파일은 실제 쿼리 내용이 담겨 있는 파일들
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath://sqlmap/**/*_SQL.xml"/>
</bean>
<!--
sqlSessionTemplate은 데이터베이스에 개별적으로 쿼리를 실행시키는 객체
sqlSessionTemplate을 소스 코드에서 사용하여 쿼리를 실행시킨다
sqlSessionTemplate 빈은 sqlSessionFactory 객체를 생성자로 받고,
sqlSession 객체가 가지고 있는 데이터 베이스 접속 정보와 mapper 파일의 위치를 알 수 있다.
ex) SqlSessionTemplate sqlSessionTemplate = new SqlSessionFactory();
-->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
</beans>
댓글