spring MVC +ibatis 配置双链接池 链接mysql和orcal

首先 要写好配置文件 applicationContext-ibatis.xml

<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <!-- 这里支持多种寻址方式:classpath和file -->
                <value>classpath:/config/properties/jdbc.properties</value>
                <value>classpath:/config/properties/dev.properties</value>
            </list>
        </property>
    </bean>

<bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init">
        <property name="driverClassName">
            <value>${kjds.jdbc.driverClassName}</value>
        </property>
        <property name="url">
            <value>${kjds.jdbc.url}</value>
        </property>
        <property name="username">
            <value>${kjds.jdbc.username}</value>
        </property>
        <property name="password">
            <value>${kjds.jdbc.password}</value>
        </property>
        <property name="maxActive" value="${kjds.jdbc.maxActive}" />
        <property name="initialSize" value="${kjds.jdbc.initialSize}" />
        <property name="maxWait" value="${kjds.jdbc.maxWait}" />
        <property name="minIdle" value="${kjds.jdbc.minIdle}" />

        <property name="timeBetweenEvictionRunsMillis" value="${kjds.jdbc.timeBetweenEvictionRunsMillis}" />
        <property name="minEvictableIdleTimeMillis" value="${kjds.jdbc.minEvictableIdleTimeMillis}" />

        <property name="validationQuery" value="${kjds.jdbc.validationQuery}" />
        <property name="testWhileIdle" value="${kjds.jdbc.testWhileIdle}" />
        <property name="testOnBorrow" value="${kjds.jdbc.testOnBorrow}" />
        <property name="testOnReturn" value="${kjds.jdbc.testOnReturn}" />
    

        <!-- 开启Druid的监控统计功能 -->
        <property name="filters" value="stat" />

    </bean>    
    
    <!-- sqlMapClient config setting begin -->
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="configLocations">
            <list>
                <value>classpath:/config/ibatis/sql-map-config-*.xml</value>
            </list>
        </property>
        <property name="dataSource">
            <ref bean="masterDataSource" />
        </property>
        <property name="lobHandler" ref="oracleLobHandler" />
    </bean>
    <bean id="sqlMapClientOrcl" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="configLocations">
            <list>
                <value>classpath:/config/ibatis/sql-map-config-*.xml</value>
            </list>
        </property>
        <property name="dataSource">
            <ref bean="masterDataSourceOrcl" />
        </property>
        <property name="lobHandler" ref="oracleLobHandler" />
    </bean>

    <!-- sqlMapClient config setting end -->

    <!-- transactionManager processing config setting begin -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref bean="masterDataSource" />

        </property>
        <property name="globalRollbackOnParticipationFailure" value="false" />
    </bean>

    <aop:config>
        <aop:pointcut id="serviceMethods"
            expression="execution(* com.blemall.global.kjdsapi.*ServiceImpl.*(..)) ||
                        execution(* com.blemall.global.kjdsapi.*ServiceImpl.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods" />
    </aop:config>

    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true" />
            <tx:method name="find*" read-only="true" />
            <tx:method name="query*" read-only="true" />
            <tx:method name="insert*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="update*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="remove*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="delete*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="*" rollback-for="Exception" propagation="REQUIRED"
                read-only="false" />
        </tx:attributes>
    </tx:advice>
    <!-- transactionManager processing config setting end -->
    
    <aop:config>
        <aop:pointcut id="othersServiceMethods"
            expression="execution(* com.blemall.global.kjdsapi.*ServiceImpl.*(..)) ||
                        execution(* com.blemall.global.kjdsapi.*ServiceImpl.*(..))" />
        <aop:advisor advice-ref="othersTxAdvice" pointcut-ref="othersServiceMethods" />
    </aop:config>
    
    <bean id="othersTransactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref bean="masterDataSourceOrcl" />
        </property>
        <property name="globalRollbackOnParticipationFailure" value="false" />
    </bean>

    <tx:advice id="othersTxAdvice" transaction-manager="othersTransactionManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true" />
            <tx:method name="find*" read-only="true" />
            <tx:method name="query*" read-only="true" />
            <tx:method name="insert*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="update*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="remove*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />
            <tx:method name="delete*" rollback-for="Exception"
                propagation="REQUIRED" read-only="false" />    
            <tx:method name="*" rollback-for="Exception" propagation="REQUIRED"
                read-only="false" />
        </tx:attributes>
    </tx:advice>
    
    <bean id="kjdsTestDao" class="com.blemall.global.kjdsapi.dao.impl.KjdsTestDaoImpl">
            <property name="sqlMapClient" ref="sqlMapClientOrcl"></property>
    </bean>
    
    <!-- 配置orcal -->
     <bean id="masterDataSourceOrcl" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
        <property name="driverClassName">
            <value>${kjds.orcal.jdbc.driverClassName}</value>
        </property>
        <property name="url">
            <value>${kjds.orcal.jdbc.url}</value>
        </property>
        <property name="username">
            <value>${kjds.orcal.jdbc.username}</value>
        </property>
        <property name="password">
            <value>${kjds.orcal.jdbc.password}</value>
        </property>
    </bean> 

配置需要连接的数据库信息的properties  ,内容如下

mysql数据库jdbc.properties 如下:
kjds.jdbc.driverClassName=com.mysql.jdbc.Driver
kjds.jdbc.username=账号
kjds.jdbc.password=密码
kjds.jdbc.url=jdbc:mysql://ip????/t_global?characterEncoding=UTF-8

kjds.jdbc.maxActive=20
kjds.jdbc.initialSize=1
kjds.jdbc.maxWait=60000
kjds.jdbc.minIdle=1
kjds.jdbc.timeBetweenEvictionRunsMillis=3000
kjds.jdbc.minEvictableIdleTimeMillis=300000

kjds.jdbc.validationQuery="SELECT 'x' FROM DUAL"
kjds.jdbc.testWhileIdle=true
kjds.jdbc.testOnBorrow=false
kjds.jdbc.testOnReturn=false

orcal数据库dev.properties 如下:

kjds.orcal.jdbc.driverClassName=oracle.jdbc.OracleDriver
kjds.orcal.jdbc.username=zhanghao
kjds.orcal.jdbc.password=mima

kjds.orcal.jdbc.url=jdbc:oracle:thin:@ip????:ORCL


要对com.blemall.global.kjdsapi.dao.impl.KjdsTestDaoImpl路径下的文件进行注入,注入访问的第二个数据库相关。

注入的名字 @Resource(name="sqlMapClientOrcl")  也就是配置文件的中的property里ref

  <bean id="kjdsTestDao" class="com.blemall.global.kjdsapi.dao.impl.KjdsTestDaoImpl">
            <property name="sqlMapClient" ref="sqlMapClientOrcl"></property>
    </bean>

接下来要copy一份底层BaseDao,BaseDaoImpl,IBaseService和IBaseServiceImpl写成自己需要的名字  要把copy的BsaeDaoimpl注入的名字改为配置文件的中的property里ref一样的名字  如下所示:

@Repository("kjdsTestDao")
public class KjdsTestDaoImpl <T, PK extends Serializable> extends SqlMapClientDaoSupport implements  IKjdsTestDao<T, PK> {
     @Resource(name="sqlMapClientOrcl")
      private SqlMapClient sqlMapClient;
      @PostConstruct
      public void init() { super.setSqlMapClient(this.sqlMapClient);
      }

然后另写需要实现的dao daoImpl service和serviceImpl继承之前copy好的, 注意路径不要跟配置文件的路径写错

然后正常的在C层插入数据就可以了









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值