▶ MyJdbcDao
클래스 내에서 데이터베이스 연결을 설정하고 해제하는 메서드를 구현합니다
getConnection 메서드 :
이 메서드는 Spring의 ApplicationContext를 초기화하고, MyJdbcConnection 빈을 가져와 데이터베이스 연결을 얻음
ctx를 생성하고 XML 파일 "xml02/appCtx.xml"을 사용하여 컨테이너를 설정
myJdbcConnection 빈을 가져오고, 해당 빈에서 데이터베이스 연결 객체를 얻어옴
데이터베이스 연결을 사용한 후에는 ctx를 닫아 Spring 컨테이너를 종료
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package com.gdu.app02.xml02;
import java.sql.Connection;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MyJdbcDao {
private Connection con;
private AbstractApplicationContext ctx;
private MyJdbcConnection myJdbcConnection;
private Connection getConnection() {
ctx = new GenericXmlApplicationContext("xml02/appCtx.xml");
myJdbcConnection = ctx.getBean("myJdbcConnection", MyJdbcConnection.class);
ctx.close();
return myJdbcConnection.getConnection();
}
private void close() {
try {
if(con != null) {
con.close();
System.out.println(myJdbcConnection.getUser() + " 접속 해제");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void add() {
con = getConnection();
System.out.println("add() 호출");
close();
}
public void remove() {
con = getConnection();
System.out.println("remove() 호출");
close();
}
public void modify() {
con = getConnection();
System.out.println("modify() 호출");
close();
}
public void select() {
con = getConnection();
System.out.println("select() 호출");
close();
}
}
|
cs |
▶ MyJdbcService
MyJdbcDao 객체를 사용하여 데이터베이스 작업을 수행하는 간단한 서비스 클래스
이 클래스의 인스턴스를 생성하고 메서드를 호출하여 데이터베이스 작업을 수행할 수 있음
myJdbcDao 필드 :
MyJdbcDao 객체를 저장하기 위한 필드입니다. 이 필드를 통해 데이터베이스 작업을 수행합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package com.gdu.app02.xml02;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class MyJdbcService {
private MyJdbcDao myJdbcDao;
public void add() {
myJdbcDao.add();
}
public void remove() {
myJdbcDao.remove();
}
public void modify() {
myJdbcDao.modify();
}
public void select() {
myJdbcDao.select();
}
}
|
cs |
▶ MyJdbcConnection
JDBC(Java Database Connectivity)를 사용하여 데이터베이스 연결을 담당하는 역할을 합니다.
주요 기능은 데이터베이스 연결을 설정하고 Connection 객체를 반환하는 것입니다.
DriverManager.getConnection() 메서드를 사용하여 데이터베이스에 연결을 시도합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package com.gdu.app02.xml02;
import java.sql.Connection;
import java.sql.DriverManager;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class MyJdbcConnection {
private String driver; // oracle.jdbc.OracleDriver
private String url; // jdbc:oracle:thin:@127.0.0.1:1521:xe
private String user; // GD
private String password; // 1111
public Connection getConnection() {
Connection con = null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
System.out.println(user + "접속성공");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
}
|
cs |
▶ appCtx.xml
스프링(Spring) 애플리케이션 컨텍스트에서 사용되며, 여기에서 스프링 빈(Bean)을 정의하고 설정
빈들은 스프링 컨테이너에 의해 생성 및 관리
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?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">
<!-- MyJdbcConnection 객체 만들기 -->
<bean class="com.gdu.app02.xml02.MyJdbcConnection" id="myJdbcConnection">
<property name="driver" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<property name="user" value="GD"/>
<property name="password" value="1111"/>
</bean>
<!-- MyJdbcDao 객체 만들기 -->
<bean class="com.gdu.app02.xml02.MyJdbcDao" id="dao"/>
<!-- MyJdbcService 객체 만들기 -->
<bean class="com.gdu.app02.xml02.MyJdbcService" id="service">
<property name="myJdbcDao" ref="dao"/>
</bean>
</beans>
|
cs |
▶ Main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package com.gdu.app02.xml02;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainWrapper {
public static void main(String[] args) {
AbstractApplicationContext ctx = new GenericXmlApplicationContext("xml02/appCtx.xml");
MyJdbcService myJdbcService = ctx.getBean("service", MyJdbcService.class);
myJdbcService.add();
myJdbcService.modify();
myJdbcService.remove();
myJdbcService.select();
ctx.close();
}
}
|
cs |
'코딩기록 저장소 🐕 > spring(JPA)🌱' 카테고리의 다른 글
Spring mvc (0) | 2023.09.26 |
---|---|
Spring java (0) | 2023.09.26 |
Spring core 스프링 컨테이너, Bean(김영한의 스프링) (0) | 2023.09.25 |
Spring 시작 (0) | 2023.09.25 |
Spring core 할인정책개발 스프링 적용! (김영한의 스프링) (0) | 2023.09.20 |