国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
spring,mybatis,atomikos多數(shù)據(jù)源的整合
          由于在接下來的項(xiàng)目中要用到多數(shù)據(jù)源,我負(fù)責(zé)這塊的工作,所以查了一下資料,但是網(wǎng)上的資料還多都是千篇一律,抄襲過去,抄襲過來,所以自己試著成功了,希望對有需要的人幫助,如果有不正確的地方請扔磚頭,經(jīng)測試成功。話入正題。了解spring的大蝦門肯定一看就知道這個(gè)原理,所以我就沒有貼太多的注解了。如果有需要的可以留言交流

 一、spring3.0.5,mybatis3.0.5、的包都不多說了,需要引入關(guān)于atomikos的包如下

 二、關(guān)于spring的applicationcontext的配置:

讀取數(shù)據(jù)庫的信息

點(diǎn)擊(此處)折疊或打開

  1. <!--屬性文件讀入,使用JdbcPlaceholderConfigurer則可以從數(shù)據(jù)庫讀取配置信息 -->
  2.     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  3.         <property name="locations">
  4.             <list>
  5.                 <value>classpath*:jdbc.properties</value>
  6.             </list>
  7.         </property>
  8.     </bean>
jdbc.properties的配置文件

點(diǎn)擊(此處)折疊或打開

  1. jdbc.username=root
  2. jdbc.password=123456
  3. jdbc.url=jdbc:mysql://192.168.1.8:3310/sitestone?useUnicode=true&characterEncoding=utf-8
  4. jdbc.driver=com.mysql.jdbc.Driver

  5. jdbca.url=jdbc:mysql://192.168.1.8:3310/sitesttwo?useUnicode=true&characterEncoding=utf-8
  6. jdbca.username=root
  7. jdbca.password=123456
  8. jdbca.driver=com.mysql.jdbc.Driver
配置mysql的兩個(gè)數(shù)據(jù)源

點(diǎn)擊(此處)折疊或打開

  1. <!-- 兩個(gè)數(shù)據(jù)源的功用配置,方便下面直接引用 -->
  2.      <bean id="abstractXADataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init"
  3.              destroy-method="close" abstract="true">
  4.         <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>
  5.         <property name="poolSize" value="10" />
  6.         <property name="minPoolSize" value="10"/>
  7.         <property name="maxPoolSize" value="30"/>
  8.         <property name="borrowConnectionTimeout" value="60"/>
  9.         <property name="reapTimeout" value="20"/>
  10.         <!-- 最大空閑時(shí)間 -->
  11.         <property name="maxIdleTime" value="60"/>
  12.         <property name="maintenanceInterval" value="60 />
  13.         <property name="loginTimeout" value="60"/>
  14.         <property name="logWriter" value="60"/>
  15.         <property name="testQuery">
  16.             <value>select 1</value>
  17.         </property>
  18.         
  19.     </bean>
  20.     <!-- 配置第一個(gè)數(shù)據(jù)源 -->
  21.     <bean id="dataSource" parent="abstractXADataSource">
  22.     <!-- value只要兩個(gè)數(shù)據(jù)源不同就行,隨便取名 -->
  23.         <property name="uniqueResourceName" value="mysql/sitestone" />
  24.         <property name="xaDataSourceClassName"
  25.             value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
  26.         <property name="xaProperties">
  27.             <props>
  28.                 <prop key="URL">${jdbc.url}</prop>
  29.                 <prop key="user">${jdbc.username}</prop>
  30.                 <prop key="password">${jdbc.password}</prop>
  31.             </props>
  32.         </property>
  33.     </bean>

  34.     <!-- 配置第二個(gè)數(shù)據(jù)源-->
  35.     <bean id="dataSourceB" parent="abstractXADataSource">
  36. <!-- value只要兩個(gè)數(shù)據(jù)源不同就行,隨便取名 -->
  37.         <property name="uniqueResourceName" value="mysql/sitesttwo" />
  38.         <property name="xaDataSourceClassName"
  39.             value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
  40.         <property name="xaProperties">
  41.             <props>
  42.                 <prop key="URL">${jdbca.url}</prop>
  43.                 <prop key="user">${jdbca.username}</prop>
  44.                 <prop key="password">${jdbca.password}</prop>
  45.             </props>
  46.         </property>
  47.     </bean>
配置sessionfactory


點(diǎn)擊(此處)折疊或打開

  1. <!-- 配置mybatis的SessionFactory -->
  2.     <bean id="sqlSessionFactoryB" class="org.mybatis.spring.SqlSessionFactoryBean">
  3.         <!--mybatis的總配置文件-->
  4. <property name="configLocation" value="classpath:configurationb.xml"/>
  5. <!--掃描mybatis的寫sql的mapper文件-->
  6.         <property name="mapperLocations" value="classpath*:/com/suntel/linkup/model/mappert/*Mapper.xml"/>
  7. <!----選擇數(shù)據(jù)源------>
  8.         <property name="dataSource" ref="dataSourceB" />
  9.     </bean>

  10.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  11.         <property name="configLocation" value="classpath:configuration.xml"/>
  12.         <property name="mapperLocations" value="classpath*:/com/suntel/linkup/model/mapper/*Mapper.xml"/>
  13.         <property name="dataSource" ref="dataSource" />
  14.     </bean>
為dao中選擇相應(yīng)的SqlSessionTemplate,給sqlsession注入相應(yīng)的session工廠,這樣dao和有相應(yīng)的數(shù)據(jù)庫可以連接了

點(diǎn)擊(此處)折疊或打開

  1. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
  2.             <constructor-arg index="0" ref="sqlSessionFactory" />
  3.         </bean>
  4.         <bean id="sqlSessionb" class="org.mybatis.spring.SqlSessionTemplate">
  5.             <constructor-arg index="0" ref="sqlSessionFactoryB" />
  6.         </bean>
舉例說下關(guān)于dao的調(diào)用,注意下劃線的地方;

點(diǎn)擊(此處)折疊或打開

  1. private SqlSession sqlSessionb;
  2.     
  3.     public T create(String sql_ID,T entity) {
  4.         this.getSqlSessionb().insert(sql_ID, entity);
  5.         return entity;
  6.     }
  7.     public SqlSession getSqlSessionb() {
  8.         return sqlSessionb;
  9.     }

  10.     public void setSqlSessionb(SqlSession sqlSessionb) {
  11.         this.sqlSessionb = sqlSessionb;
  12.     }
  13. 這兒得sqlSessionb是和spring配置文件中的
  14. <bean id="sqlSessionb" class="org.mybatis.spring.SqlSessionTemplate">
  15.             <constructor-arg index="0" ref="sqlSessionFactoryB" />
  16.         </bean> 相對用的,名稱和bean中的id要相同,
  17. 調(diào)用另一個(gè)數(shù)據(jù)session也是一樣的原理:private SqlSession sqlSession;
  18.     public SqlSession getSqlSession() {
            return sqlSession;
        }

        public void setSqlSession(SqlSession sqlSession) {
            this.sqlSession = sqlSession;
        }
  19. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
  20.             <constructor-arg index="0" ref="sqlSessionFactory" />
  21.  </bean>
配置事務(wù)

點(diǎn)擊(此處)折疊或打開

  1. <!-- 事務(wù)這塊用spring管理atomikos -->
  2.     <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
  3.         init-method="init" destroy-method="close">
  4.         <property name="forceShutdown">
  5.             <value>true</value>
  6.         </property>
  7.     </bean>
  8.     <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
  9.         <property name="transactionTimeout" value="300" />
  10.     </bean>

  11.     <bean id="springTransactionManager"
  12.         class="org.springframework.transaction.jta.JtaTransactionManager">
  13.         <property name="transactionManager">
  14.             <ref bean="atomikosTransactionManager" />
  15.         </property>
  16.         <property name="userTransaction">
  17.             <ref bean="atomikosUserTransaction" />
  18.         </property>
  19.         <!-- 必須設(shè)置,否則程序出現(xiàn)異常 JtaTransactionManager does not support custom isolation levels by default -->
  20.          <property name="allowCustomIsolationLevels" value="true"/>
  21.         
  22.     </bean>
  23.     <!-- 支持 @AspectJ 標(biāo)記-->
  24.      <aop:aspectj-autoproxy />
  25.     
  26.  
  27.         <!-- 以AspectJ方式 定義 AOP -->
  28.     <aop:config proxy-target-class="true">
  29.         <aop:advisor pointcut="execution(* com.suntel.linkup.service..*.*(..))" advice-ref="txAdvice"/>
  30.     </aop:config>
  31.     
  32.      <!-- 配置事務(wù)傳播特性:如果存在一個(gè)事務(wù),則支持當(dāng)前事務(wù)。如果沒有事務(wù)則開啟:REQUIRED -->
  33.     <tx:advice id="txAdvice" transaction-manager="springTransactionManager">
  34.         <tx:attributes>
  35.            <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/>
  36.            <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/>
  37.            <tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/>
  38.            <tx:method name="create*" propagation="REQUIRED" rollback-for="Exception"/>
  39.            <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/>
  40.            <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>
  41.            <tx:method name="modify*" propagation="REQUIRED" rollback-for="Exception"/>
  42.            <tx:method name="*" read-only="true"/>
  43.        </tx:attributes>
  44.     </tx:advice>

好了,代碼貼完了,可以試著運(yùn)行了。





本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
mybatis三種批量插入方式對比【面試+工作】
spring+mybatis+atomikos 實(shí)現(xiàn)JTA事務(wù)
在spring、tomcat中使用多數(shù)據(jù)源并支持分布式事務(wù)管理
使用Atomikos Transactions Essentials實(shí)現(xiàn)多數(shù)據(jù)源JTA分布式事務(wù)
JTA集成JOTM或Atomikos配置分布式事務(wù)(Tomcat應(yīng)用服務(wù)器)
Spring + Atomikos 分布式事務(wù)實(shí)現(xiàn)方式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服