乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      spring,mybatis,atomikos多數(shù)據(jù)源的整合

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

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

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

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

      點擊(此處)折疊或打開

      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的配置文件

      點擊(此處)折疊或打開

      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的兩個數(shù)據(jù)源

      點擊(此處)折疊或打開

      1. <!-- 兩個數(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.         <!-- 最大空閑時間 -->
      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.     <!-- 配置第一個數(shù)據(jù)源 -->
      21.     <bean id="dataSource" parent="abstractXADataSource">
      22.     <!-- value只要兩個數(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.     <!-- 配置第二個數(shù)據(jù)源-->
      35.     <bean id="dataSourceB" parent="abstractXADataSource">
      36. <!-- value只要兩個數(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


      點擊(此處)折疊或打開

      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ù)庫可以連接了

      點擊(此處)折疊或打開

      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)用,注意下劃線的地方;

      點擊(此處)折疊或打開

      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)用另一個數(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ù)

      點擊(此處)折疊或打開

      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 標記-->
      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ù)傳播特性:如果存在一個事務(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>

      好了,代碼貼完了,可以試著運行了。





        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多