꾸릉스토리

[스프링] Spring(STS3)에서 DB연동하기 (2)-라이브러리설치 및 설정 본문

개발

[스프링] Spring(STS3)에서 DB연동하기 (2)-라이브러리설치 및 설정

꾸릉스토리 2024. 5. 27. 14:01

 

 

 

DB연동을 위한 Maven 라이브러리 적용하기

 

https://mvnrepository.com/

 

메이븐 라이브러리를 사용하기 위해서는 위 링크에서 검색하여 사용할 수 있습니다.

 

 

 

Oracle DB와의 연동을 위해서 적용할 라이브러리는 아래와 같습니다.

 

Hikari CP 라는 데이터베이스와의 연결을 위해 사용되는 라이브러리가 있습니다.

 

Mybatis 라는 라이브러리를 사용하면 SQL문을 자바객체와 쉽게 연결할 수 있습니다.

 

JDBC라는 라이브러리는 데이터베이스에 연결되어 SQL문을 실행할 수 있습니다.

 

또한 OracleDB를 사용할 수 있도록 하는 OJDBC를 적용합니다.

 

 

 

 

아래는 해당 라이브러리들의 적용 방법입니다.

 

 

 

 

위 메이븐 레파지토리에 들어가서 hikaricp라고 검색합니다.

 

첫번째 나오는 링크를 들어가서 3.3.1 버전을 클릭합니다.

 

들어가면 위 이미지처럼 Maven에서 xml에 적용할 수 있는 코드가 보입니다.

 

내용의 아무데나 클릭하면 전체 복사가 되고 해당 내용을 내 프로젝트의 pom.xml에 적용합니다.

 

위는 pom.xml의 내용에 hikaricp를 적용한 부분입니다.

 

</dependencies> 의 윗부분에 복사된 내용을 붙여넣으면 됩니다.

 

 

 

 

 

 

Spring JDBC도 메이븐레파지토리에서 검색하여 적용합니다.

 

Spring JDBC는 아무 버전이나 클릭 후 내용을 적용하면 됩니다.

 

 

적용되는 라이브러리중 groupId가 org.springframework일 경우 

 

버전을 ${org.springframework-version} 로 설정하면 spring에서 자동으로 최적의 버전으로 실행시킵니다.

 

 

 

 

 

 

 

mybatis는 두가지를 설치해야합니다.

 

 

Mybatis 버전 3.4.6과

Mybatis Spring 버전 1.3.2 를 사용합니다.

 

 

 

 

 

 

마지막으로 OJDBC를 적용합니다.

OracleDB 버전이 19C이상일 경우

ojdbc8을 검색하여 나오는 라이브러리를 사용합니다.

 

oracleDB버전에 맞추어 설치하면되는데 설치된 버전은

cmd를 실행한 후 sqlplus 를 입력하여 버전을 확인할 수 있습니다.

 

메이븐레파지토리에서 해당 버전을 적용합니다.

pom.xml에 적용합니다.

 

 

 

 

모든 라이브러리가 적용된 pom.xml파일 내용입니다.

 

또한 메이븐 업데이트(alt+F5)를 진행하면 메이븐디펜던시에 적용이 되는것을 확인할 수 있습니다.

 

 

 

 

이후 DB연동 설정을 진행합니다.

 

우선 src/main/webapp/WEB-INF/spring 경로에 있는 root-context.xml에서 Hikari CP 설정을 진행합니다.

 

hikaricp설정을 bean으로 등록해주어야합니다.

	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
		<property name="username" value="c##java"></property>
		<property name="password" value="1234"></property>
		<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
		<property name="driverClassName" value="oracle.jdbc.OracleDriver"></property>
	</bean>

 

db접근시 필요한 정보를 담고있습니다.

 

위에서 설정한 bean은 Maven dependencies에 HikariCP-3.3.1.jar의 com.zaxxer.hikari 패키지 내부의 HikariConfig.class 파일에 보면 선언되어있는 변수들이 있는데 해당 변수들에 값을 채워넣기 위함입니다.

 

 

 

 

 

또한 위 설정을 기반으 내용을 처리하는 코드도 bean으로 등록해야합니다.

	<bean id="ds" class="com.zaxxer.hikari.HikariDataSource">
		<constructor-arg ref="hikariConfig"></constructor-arg>
	</bean>

 

bean으로 등록한 위 코드는 해당 클래스 사용하기 위해 생성됩니다.

 

 

 

 

 

 

 

 

다음은 Mybatis 설정입니다.

위에서 설정한 hikaricp의 data source인 ds를 사용합니다.

 

mapperLocations은 미리 만들어둔 mappers내부의 모든 폴더를 의미하고 해당 폴더에 Mapper.xml로 끝나는 모든 파일을 의미합니다.

 

 

 

 

 

 

 

 

하지만 이대로 실행을 하면 에러가 발생합니다.

 

mapper.xml로 설정은 되어있지만 mapper.xml에 아무런 내용이 없기때문입니다.

 

 

https://mybatis.org/mybatis-3/ko/index.html

 

해당 경로에서 mybatis 를 시작하기위해서 해야할 설정이 나와있습니다. (좌측 메뉴의 시작하기)

 

 

스크롤을 내려보면

이와 같은 내용이 있습니다.

 

해당 내용을 복사하여 만들어둔 loginMapper.xml 파일 내부에 붙여넣습니다.

 

 

예시로 나와있는 <select> </select>는 삭제해주시면 됩니다.

 

mapper 의 namespace는 내 프로젝트 패키지의 LoginMapper.java 파일의 경로를 적어주면 됩니다.

 

아래는 작성된 내용입니다.

 

<?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="com.practice.root.mybatis.login.LoginMapper">
	
</mapper>

 

 

 

 

추가로 root-context.xml에 적용될 내용입니다.

 

root-context.xml파일에 보면 하단에 Namespaces가 있습니다.

 

클릭하시고 mybatis-spring을 체크하신다음 다시 source를 클릭하셔서 아래 코드를 입력합니다.

 

 

 

 

최종적인 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"
	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">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
		
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
		<property name="username" value="c##java"></property>
		<property name="password" value="1234"></property>
		<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
		<property name="driverClassName" value="oracle.jdbc.OracleDriver"></property>
	</bean>
	
	<bean id="ds" class="com.zaxxer.hikari.HikariDataSource">
		<constructor-arg ref="hikariConfig"></constructor-arg>
	</bean>
	
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="ds"></property>
		<property name="mapperLocations" value="classpath:/mappers/**/*Mapper.xml"></property>
	</bean>
	
	<mybatis-spring:scan base-package="com.practice.root.mybatis.login"/>
		
</beans>

 

 

 

 

만약 무엇인가 설정이 안되어있다면

서버가 정상적으로 실행되지 않을 가능성이 매우 큽니다.

 

 

 

여기까지 db연동을 위한 라이브러리 설치 및 설정이었습니다.

반응형