개발/java,spring

스프링/아이바티스 2개의 DB연결

Mr.mandu. 2017. 5. 23. 08:00
오라클 DB, 큐브리드에 접근해야 할 경우가 생겼습니다.
이에 서로다른 DB에 접근해보도록 하겠습니다.

저는 현재 전자정부 프레임워크를 사용중이므로

전자정부 프레임워크 기준으로 작성중입니다.


<?xml version="1.0" encoding="UTF-8"?>


    
      
        
       
       
   
    
    
        
        
        
        
   



일반적으로 DB를 연결하는 dataSource를 다음 처럼 수정합니다.

bean 객체를 2개 선언합니다.


<?xml version="1.0" encoding="UTF-8"?>

    
    
   
      
        

      
    
    
     
     

        


그리고 각 연결되 DB를 어디에서 사용할지 정해줍니다
여기에 작성한 디렉토리에 쿼리 xml 파일을 생성해야 합니다.


그리고 이번엔 자바 파일 

즉, 클래스를 이용하여 DB에 접속할 DAO를 만들겠습니다.

저는 전자정부 프레임워크를 사용하기 때문에 기본적으로

"sqlMapClient" 빈 객체를 사용합니다.


전자정부프레임워크에서 제공하는 EgovAbstractDAO 을 상속받고 사용합니다.


public class UrlmngDAO extends EgovAbstractDAO {

	/** 목록 */
	public List list(){
		return list("a.b.c.List", null);
	}
}


하지만 또다른 DB에 접근하기위해 EgovAbstractDAO  이것이 아닌 다른 클래스를 상속 받으려고 합니다.


다른 DB에 접근에 사용할 DAO를 만듭니다.


public class TiesSmsAbstractDAO extends EgovAbstractDAO {
    
    @Resource(name = "sqlMapClientSMS")
    public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
        super.setSuperSqlMapClient(sqlMapClient);
    }
}

그리고 다른 DB에 접근할 용도로 사용하고자 한다면


public class SmsSendDAO extends TiesSmsAbstractDAO {

	public long smsSend(SmsVO vo) {
		long result = CastUtil.longValue(insert("sms.sms.sms.smsSend", vo));
		return result;
	}
}

이처럼 접근하여 사용하시면 됩니다.

이때 xml 쿼리 파일의 위치는 위에서 정해주셨던 경로에 위치해야 합니다.