[Spring 9-3] JDBC์™€ SpringDAO

์ž„์Šนํ˜„ยท2023๋…„ 2์›” 21์ผ

Spring

๋ชฉ๋ก ๋ณด๊ธฐ
24/46


๐ŸงSpringDAO ์„ค์ •

โ€ป src/main/java ํด๋”์— xyz.itwill08.dao ํŒจํ‚ค์ง€ ์ƒ์„ฑ

๐ŸŒˆ๋ฉ”์ด๋ธ ๋นŒ๋“œ ์ฒ˜๋ฆฌ

๐Ÿ“ƒpom.xml

<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11 -->
<!-- โ†’ JDBC ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ OracleDriver ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc11</artifactId>
    <version>21.9.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<!-- โ†’ Spring DAO ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Spring DataSource ๊ด€๋ จ ํด๋ž˜์Šค ํฌํ•จ -->
<!-- โ†’ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด๊ด€๊ณ„์— ์˜ํ•ด spring-tx ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(ํŠธ๋ Œ์ ์…˜ ๊ด€๋ฆฌ)๋„ ๋นŒ๋“œ ์ฒ˜๋ฆฌ -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

๐ŸŒˆํด๋ž˜์Šค ์ƒ์„ฑ

๐Ÿ“ƒDataSourceApp.java

โ€ป xyz.itwill08.dao ํŒจํ‚ค์ง€์— DataSourceApp.java ํด๋ž˜์Šค ์ƒ์„ฑ

package xyz.itwill08.dao;
//
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//
//DataSource ๊ฐ์ฒด : ๋‹ค์ˆ˜์˜ Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜์—ฌ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด - DBCP(DataBase Connection Pool)
//โ†’ Spring Bean Configuration File์—์„œ DataSource ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์ž์‹ํด๋ž˜์Šค๋ฅผ Spring Bean ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉ
//DataSource ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์ž์‹ํด๋ž˜์Šค๋Š” Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” spring-jdbc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋นŒ๋“œ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ - ๋ฉ”์ด๋ธ : pom.xml
//โ†’ DataSource ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™ธ์— Oracle Driver ๊ด€๋ จ ojdbc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ํ”„๋กœ์ ํŠธ์— ๋นŒ๋“œ ์ฒ˜๋ฆฌ
public class DataSourceApp {
	public static void main(String[] args) throws SQLException {
		ApplicationContext context=new ClassPathXmlApplicationContext("08_dao.xml");
		DataSource dataSource=context.getBean("dataSource", DataSource.class);
		System.out.println("================================================================");
		System.out.println("dataSource = "+dataSource);
		Connection connection=dataSource.getConnection();
		System.out.println("connection = "+connection);
		connection.close();
		System.out.println("================================================================");
		((ClassPathXmlApplicationContext)context).close();
	}
}

๐ŸŒˆํ™˜๊ฒฝ์„ค์ •ํŒŒ์ผ ์ƒ์„ฑ

๐Ÿ“ƒ08_dao.xml

โ€ป src/main/resources ํด๋”์— 08_dao.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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- ================================================================================ -->
	<!-- Spring Framework์˜ spring-jdbc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ DriverManagerDataSource ํด๋ž˜์Šค๋ฅผ Spring Bean์œผ๋กœ ๋“ฑ๋ก -->
	<!-- โ†’ DBCP(DataBase Connection Pool) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” DataSource ๊ฐ์ฒด ์ƒ์„ฑ -->
	<!-- โ†’ DataSource ๊ฐ์ฒด ํ•„๋“œ์— Connection ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์„ ์ „๋‹ฌํ•˜์—ฌ ์ €์žฅ - Setter Injection -->
	<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
		<property name="username" value="scott"/>
		<property name="password" value="tiger"/>
	</bean>
</beans>

0๊ฐœ์˜ ๋Œ“๊ธ€