Spring과 Oracle DB 연동

김주언·2022년 8월 31일
0

Spring

목록 보기
5/15
post-thumbnail

1. JDBC Driver 설정

  1. Project Structure > Libraries > +버튼 클릭 > Java

  1. 클릭 후 ojdbc.jar 파일 추가

  1. Artifacts 에서 Available Elements 부분에 추가된 ojdbc 더블클릭해서 lib 폴더 안으로 넣기

2. JDBC 테스트 코드

test/java 디렉터리 아래에 JDBCTest 클래스 생성

package com.example.springboard.persistence;

import lombok.extern.log4j.Log4j;
import org.junit.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import static org.junit.Assert.fail;

@Log4j
public class JDBCTests {
    public static Connection mySqlConn;
    public static Connection oracleConn;

    public static String userid = "userid";
    public static String password = "password";

    public static String mySQLUrl = "jdbc:mysql://localhost:3307/[database]";
    public static String oracleUrl = "jdbc:oracle:thin:@//localhost:1521/XEPDB1";


    static {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void testConnection(){
        try {
            oracleConn = DriverManager.getConnection(oracleUrl, userid, password);
            log.info(oracleConn);
        } catch (SQLException e) {
            fail(e.getMessage());
        }
    }
}

DB 연결이 성공하면 Connection 객체가 출력된다.




3. 커넥션 풀 설정

  • HikariCP 사용

여러명의 사용자를 동시에 처리해야하는 웹 앱의 경우 데이터 베이스 연결 이용 시 커넥션 풀을 이용하는 경우가 일반적이다. 따라서 스프링에 커넥션 풀을 등록하는 것이 편함

Java에서는 DataSource라는 인터페이스를 사용한다. DataSource를 사용하여 매번 DB 와 연결하지 않고 미리 연결을 맺어준 뒤 반환하는 구조를 사용한다.

3.1 라이브러리 추가와 DataSource 설정

  1. pom.xml에 HikariCP 추가
		<dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>5.0.1</version>
        </dependency>
  1. root-context.xml에 설정 추가
    
<!--    Root Context : defines shared resources visible to all other web components-->
    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
        <property name="driverClassName"
                  value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="jdbcUrl"
                  value="jdbc:oracle:thin:@//localhost:1521/XEPDB1"></property>
        <property name="username" value="usernaem"></property>
        <property name="password" value="password"></property>

    </bean>
    
<!--    HikariCP Configuration-->
    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
    destroy-method="close">
        <constructor-arg ref="hikariConfig"/>
        
    </bean>


profile
학생 점심을 좀 차리시길 바랍니다

0개의 댓글