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 객체가 출력된다.
여러명의 사용자를 동시에 처리해야하는 웹 앱의 경우 데이터 베이스 연결 이용 시 커넥션 풀을 이용하는 경우가 일반적이다. 따라서 스프링에 커넥션 풀을 등록하는 것이 편함
Java에서는 DataSource라는 인터페이스를 사용한다. DataSource를 사용하여 매번 DB 와 연결하지 않고 미리 연결을 맺어준 뒤 반환하는 구조를 사용한다.
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
<!-- 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>