多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > 深入淺出Mybatis-與Spring集成

深入淺出Mybatis-與Spring集成

來源:程序員人生   發布時間:2017-02-17 09:25:04 閱讀次數:3495次

單獨使用mybatis是有很多限制的(比如沒法實現逾越多個session的事務),而且很多業務系統本來就是使用spring來管理的事務,因此mybatis最好與spring集成起來使用。

前置要求

版本要求

項目

版本

下載地址

說明

mybatis

3.0及以上

https://github.com/mybatis/mybatis⑶/releases

 

spring

3.0及以上

http://projects.spring.io/spring-framework/

 

mybatis-spring

1.0及以上

https://github.com/mybatis/spring/releases

 

 

spring事務配置

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <!-- 自動掃描業務包 -->  
  2. <context:component-scan base-package="com.xxx.service" />  
  3.   
  4. <!-- 數據源 -->  
  5. <jee:jndi-lookup id="jndiDataSource" jndi-name="java:comp/env/jdbc/datasource" />  
  6.   
  7. <!-- 配置事務 -->  
  8. <bean id="txManager"  
  9.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  10.     <property name="dataSource" ref="jndiDataSource" />  
  11. </bean>  
  12. <!-- 配置基于注解的事物aop -->  
  13. <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>  

單個集成

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <!-- 集成mybatis -->  
  2. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  3.     <property name="dataSource" ref="jndiDataSource" />  
  4.     <property name="configLocation" value="classpath:/mybatis/mybatis-config.xml" />  
  5.     <!-- 自動配置別名 -->  
  6.     <property name="typeAliasesPackage" value="com.xxx.dto" />  
  7. </bean>  
  8.   
  9. <!--創建dao bean(只需提供接口不需提供實現類 )-->  
  10. <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">  
  11.     <property name="mapperInterface" value="com.xxx.dao.UserDao" />  
  12.     <property name="sqlSessionFactory" ref="sqlSessionFactory" />  
  13. </bean>  

我們不但要明白如何使用,更要明白為何要這么使用。

SqlSessionFactoryBean是1個工廠bean,它的作用就是解析配置(數據源、別名等)。

MapperFactoryBean是1個工廠bean,在spring容器里,工廠bean是有特殊用處的,當spring將工廠bean注入到其他bean里時,它不是注入工廠bean本身而是調用bean的getObject方法。我們接下來就看看這個getObjec方法干了些甚么:

[java] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. public T getObject() throws Exception {  
  2.   return getSqlSession().getMapper(this.mapperInterface);  
  3. }  

看到這里大家應當就很明白了,這個方法和我們之前單獨使用Mybatis的方式是1樣的,都是先獲得1個Sqlsession對象,然后再從Sqlsession里獲得Mapper對象(再次強調Mapper是1個代理對象,它代理的是mapperInterface接口,而這個接口是用戶提供的dao接口)。自然,終究注入到業務層就是這個Mapper對象。

實際的項目1般來講不止1個Dao,如果你有多個Dao那就依照上面的配置順次配置便可。

如何使用批量更新

前1節講了如何注入1個mapper對象到業務層, mapper的行動依賴于配置,mybatis默許

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 来吧成人综合网 | 免费羞羞视频 | 国产精品久久久久久麻豆一区 | 欧美一级黄色片免费看 | 亚洲天堂黄色 | 全国男人天堂网 | 久久国产影视 | 国产欧美日韩综合精品一区二区 | 四虎永久免费网站入口2020 | 成人免费性视频 | 在线观看h网站 | 亚洲国产欧美一区二区欧美 | 亚洲天堂欧美 | 成人免费播放视频777777 | 免费中日高清无专码有限公司 | 欧美激情视频一区二区 | 日本高清一道本 | 自拍视频一区二区 | 欧美日韩一区二区在线视频播放 | 欧美高清揄拍自拍视频网站 | 操你.com | 成人a毛片久久免费播放 | 亚洲精品一区二区三区四区 | 国产日韩精品一区二区在线观看播放 | 亚洲精品一区二区 | 亚洲欧美视频在线 | 欧美羞羞| 国产一区二区三区日韩欧美 | 欧美在线观看一区 | 欧美一级乱妇老太婆特黄 | 欧美成人鲁丝片在线观看 | 美女免费观看一区二区三区 | 欧美stockingssexxxx| 亚洲欧美日韩在线精品一区二区 | 伊人丁香婷婷综合一区二区 | 亚洲精品第一页中文字幕 | 欧美 在线播放 | 最近中文免费字幕8 | 午夜影院美女 | 日韩成人精品日本亚洲 | 欧美国产中文字幕 |