자바 구현 의 중간 라 이브 러 리

데이터베이스 와 데이터베이스 간 의 데이터 상호작용
        1. 배경
        중간 라 이브 러 리 는 주로 하나의 큰 시스템 의 여러 데이터 베 이 스 를 해결 하 는 데 사용 되 는데 그 중에서 여러 개의 데이터 베 이 스 는 데 이 터 를 백업 하거나 업무 데 이 터 를 저장 하 는 데 사용 된다.중간 라 이브 러 리 는 두 시스템 간 의 인터페이스 문 제 를 해결 하고 두 시스템 이 공동으로 이 중간 데이터 베 이 스 를 조작 하여 데이터 의 상호작용 을 할 수 있다.
          2. 환경
        이 인 스 턴 스 가 사용 하 는 데이터 베 이 스 는 모두 MYSQL 이 며, Spring 의 IOC 주입 과 JdbcTemplate 기술 도 충분히 이용 하 였 다.다음 Jar 패 키 지 를 자바 프로젝트 에 도입 합 니 다: comons - logging - 1.0.4. jar, my sql - connector - java - 5.0.3 - bin. jar 와 spring. jar.MYDB 데이터 베 이 스 는 응용 시스템 의 데이터베이스 이 고 MYTEMPDB 데이터 베 이 스 는 중간 데이터베이스 이다.하나의 응용 시스템 은 이 중간 라 이브 러 리 에 데 이 터 를 쓰 고 다른 시스템 은 중간 라 이브 러 리 에서 데 이 터 를 가 져 옵 니 다.
          3. 새 데이터베이스, MySql 에서 다음 스 크 립 트 를 실행 합 니 다.
#############################################################################################
CREATE DATABASE MYDB;
use MYDB;

Drop TABLE IF EXISTS `MYDB`.`student`;
Create TABLE `MYDB`.`student` (
`name` varchar(40) NOT NULL,
`psw` varchar(10) NOT NULL,
`enabled` boolean
);
insert into student values("lanp","lanpiao",true);
insert into student values("ph","ph",true);
insert into student values("wxh","wxh",true);

###############################################################
CREATE DATABASE MYTEMPDB;
use MYTEMPDB;

Drop TABLE IF EXISTS `MYTEMPDB`.`student`;
Create TABLE `MYTEMPDB`.`student` (
`name` varchar(40) NOT NULL,
`psw` varchar(10) NOT NULL,
`enabled` boolean
);

#############################################################################################

        4. 자바 프로젝트 의 src 아래 에 beans. xml 파일 을 새로 만 듭 니 다. Spring 의 주입 정 보 를 설정 하 는 데 사 용 됩 니 다. 코드 는 다음 과 같 습 니 다.



    
    
    
        
            com.mysql.jdbc.Driver
        
        
            jdbc:mysql://127.0.0.1:3306/MYDB
        
        
            root
        
        
            157891
        
    
    
    
  		
	
	
	 
  		
	

    
    
        
            com.mysql.jdbc.Driver
        
        
            jdbc:mysql://127.0.0.1:3306/MYTEMPDB
        
        
            root
        
        
            157891
        
    
 	
 	
  		
	
	
	 
  		
	

        5. MyDbStudentDaoJdbc 클래스 를 새로 만 듭 니 다. 이 시스템 에서 중간 라 이브 러 리 에 쓸 데 이 터 를 가 져 오 는 데 사 용 됩 니 다. 코드 는 다음 과 같 습 니 다.
package com.lanp.dao;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

/**
 *       DAO 
 * @author LanP
 * @since 2011-11-04 15:00
 * @version V1.0
 */
public class MyDbStudentDaoJdbc {
	private JdbcTemplate jdbcTemplate;

	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	} 
	
	@SuppressWarnings("unchecked")
	public List getAllStudents() {
		String sql = "select * from student"; 
		List students = jdbcTemplate.queryForList(sql);
		return students;
	}
}

        6. 새 TempDb Student DaoJdbc 클래스 는 중간 라 이브 러 리 에 데 이 터 를 쓰 는 데 사 용 됩 니 다. 코드 는 다음 과 같 습 니 다.
package com.lanp.dao;

import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;

/**
 *      DAO 
 * @author LanP
 * @since 2011-11-04 15:00
 * @version V1.0
 */
public class TempDbStudentDaoJdbc {
	private JdbcTemplate jdbcTemplate;

	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	} 
	
	@SuppressWarnings("unchecked")
	public int setStudents(Map student) {
		int result = 0;
		if(null != student) {
			if(null != student.get("name") && !"".equals(student.get("name"))
					&& null != student.get("psw") && !"".equals(student.get("psw"))
					&& null != student.get("enabled") && !"".equals(student.get("enabled"))) {
				String sql = "insert into student values(?,?,?)";
				result = jdbcTemplate.update(sql, new Object[]{student.get("name"),student.get("psw"),student.get("enabled")});
			}
		}
		
		return result;
	}
}

       7. 새로운 MyDbPutDataToTemp 클래스 는 테스트 에 사 용 됩 니 다. 코드 는 다음 과 같 습 니 다.
package com.lanp;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.lanp.dao.MyDbStudentDaoJdbc;
import com.lanp.dao.TempDbStudentDaoJdbc;

/**
 *  MYDB     Student           MYTEMPDB Student
 * @author LanP
 * @since 2011-11-04 15:00
 * @version V1.0
 */
public class MyDbPutDataToTemp {

	/**
	 *   
	 * @param args
	 * @throws SQLException 
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws SQLException {
		//1.   beans.xml  
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		
		//2.  MYDB   Student     
		MyDbStudentDaoJdbc myDbStudentDaoJdbc = (MyDbStudentDaoJdbc)ctx.getBean("myDbStudentDao");
		//3.MYTEMPDB     DAO
		TempDbStudentDaoJdbc tempDbStudentDaoJdbc = (TempDbStudentDaoJdbc)ctx.getBean("tempDbStudentDao");
		//4. MYDB   Student       MYTEMPDB   Student 
		List students = myDbStudentDaoJdbc.getAllStudents();
		
		if(null != students && students.size() > 0) {
			for(int i=0;i

 
OK,TKS!

좋은 웹페이지 즐겨찾기