개인적인 정리

2개 이상의 데이타베이스 사용(데이타베이스 설정 추가) 본문

전자정부표준프레임워크

2개 이상의 데이타베이스 사용(데이타베이스 설정 추가)

yeon.Biju 2018. 9. 22. 10:03

오라클을 기본으로 해서  mysql을 추가하는 경우가 종종 발생하는 것 같다.

 

혹은 같은 mysql 이지만 타 시스템에 물려있는 것을 가져오는 경우도 있고, oracle의 경우도 마찬가지인데

 

DB 설정을 추가하는 절차를 간단히 정리해보고자 한다.

 

 

1. globals.properties 수정

 

- 추가할 DB 정보 입력(mysql 을 추가하는 경우)

 

Globals.SubDbType =mysql

 

#Other.DriverClassName=com.mysql.jdbc.Driver

Other.DriverClassName=core.log.jdbc.driver.MysqlDriver

Other.Url=jdbc:mysql://1.1.1.1:3306/sms?useUnicode=true&characterEncoding=utf8&autoReconnect=true

 

#DB계정 ID/PW설정

Other.UserName =aaaa

Other.Password =bbbb

 

 

 

2. context-datasource.xml 수정

<alias name="dataSource-${Globals.SubDbType}" alias="egov.dataSourceOther"/>

<alias name="dataSource-${Globals.SubDbType}" alias="dataSource"/>

 

추가

 

<!-- MySQL -->

<bean id="dataSource-mysql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName" value="${Other.DriverClassName}"/>

<property name="url" value="${Other.Url}" />

<property name="username" value="${Other.UserName}"/>

<property name="password" value="${Other.Password}"/>

 

<!-- 특정 시간마다 validationQuery를 실행 셋팅 시작  3600000 : 1시간-->

<property name="validationQuery" value="select 1"/>

<property name="testWhileIdle" value="true"/>

<property name="timeBetweenEvictionRunsMillis" value="1800000"/>

<!-- 특정 시간마다 validationQuery를 실행 셋팅 끝 -->

</bean>

 

 

 

validationQuery 도 가급적 같이 넣어준다.

mysql을 여러번 추가해봤는데..  그 때마다 connection 을 잃어버리는 경우가 발생하였다.

 

 

 

3. context-sqlMap.xml 수정

위 설정을 프로그램에서 사용하기 위해서 xml 위치를 잡아준다.

 

<bean id="egov.sqlMapClientOTHER" class="egovframework.rte.psl.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocations">

<list>

<value>classpath:/egovframework/sqlmap/config/${Globals.SubDbType}/*.xml</value>

</list>

</property>

<property name="dataSource" ref="egov.dataSourceOther"/>

</bean>

 

 

4. EgovComOtherAbstractDAO.java 파일 생성

 

public abstract class EgovComOtherAbstractDAO extends EgovAbstractDAO{

 

@Resource(name="egov.sqlMapClientOTHER")

public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {

        super.setSuperSqlMapClient(sqlMapClient);

    }

 

}

 

기존 시스템용인

EgovComAbstractDAO.java 파일이 있는 경로에 EgovComOtherAbstractDAO.java  파일을 생성해준다.

 

5. DAO 파일에서 사용한다.

EgovComOtherAbstractDAO 를 상속받아서 DAO CLASS를 만들어준다.

 

 

@Repository("AssasssssssDAO")

public class AssasssssssDAO extends EgovComOtherAbstractDAO {

 

 

........

}

 

 

 

Comments