Spring_db연동 라이브러리

인삼주·2023년 8월 17일
0

spring

목록 보기
2/22

pom.xml에 작성

		<!-- Database 라이브러리 시작 -->
		<!-- 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>
		
		<!-- 
			dbcp2는 데이터베이스 커넥션 풀
			데이터베이스 서버와 웹 서버는 서로 다른 프로그램이고, 실무에서는 전혀 다른 컴퓨터에 설치되어 있을 가능성이 높습니다.
			서로 다른 컴퓨터와 프로그램이 통신을 하기 위해서는 서로 연결을 맺는 과정이 필요하죠.
			미리 데이터베이스와 연동하기 위한 길을 만들어놓는 라이브러리
			요즘은 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>

		<!-- 
			오라클 데이터베이스 연동 라이브러리
		 -->
		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc8</artifactId>
			<version>21.1.0.0</version>
		</dependency>
		<!-- Database 라이브러리 끝 -->

dependency 작성이 완료되었다면,
maven > update Project를 해야한다.


WEB-INF/spring/root-context.xml에 3가지 bean을 설정해야한다.

<!-- 
		데이터 소스
		- 데이터베이스 관련 정보를 데이터 소스라고 한다.
		jdbc:oracle:thin:@//localhost:1521:yse
		- jdbc를 이용하여 oracle 드라이버로 현재 localhost 데이터베이스 yse에 접속한다.
		username은 데이터베이스 사용자명이다.
		password는 데이터베이스 비밀번호이다.
	 -->
		<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>
  1. 데이터베이스 연동 정보(4가지)
  2. 쿼리의 위치(xml)
  3. sqlSessionTemplate

0개의 댓글