구현한 순서
MyJdbcConnection 클래스
<bean>태그로 MyJdbcConnection 객체 생성
MyJdbcDao 클래스
<bean>태그로 MyJdbcDao 객체 생성
MyJdbcService 클래스
<bean>태그로 MyJdbcService 객체 생성
결과확인
MyJdbcConnection 클래스
@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; // db계정
private String password; // db비밀번호
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;
}
}
<bean>태그로 객체 생성
<?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">
<constructor-arg value="oracle.jdbc.OracleDriver"/>
<constructor-arg value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<constructor-arg value="db계정"/>
<constructor-arg value="db비밀번호"/>
</bean>
<!-- MyJdbcDao 객체 만들기 -->
<bean class="com.gdu.app02.xml02.MyJdbcDao" id="myJdbcDao"/>
<!-- MyJdbcService 객체 만들기 -->
<bean class="com.gdu.app02.xml02.MyJdbcService" id="myJdbcService">
<property name="myJdbcDao" ref="myJdbcDao"/>
</bean>
</beans>
MyJdbcDao 클래스
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();
}
}
MyJdbcService 클래스
@NoArgsConstructor
@AllArgsConstructor
@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();
}
}
결과 확인
public class MainWrapper {
public static void main(String[] args) {
AbstractApplicationContext ctx = new GenericXmlApplicationContext("xml02/appCtx.xml");
MyJdbcService myJdbcService = ctx.getBean("myJdbcService", MyJdbcService.class);
myJdbcService.add();
myJdbcService.remove();
myJdbcService.modify();
myJdbcService.select();
ctx.close();
}
}