單獨(dú)使用mybatis是有很多限制的(比如沒法實(shí)現(xiàn)逾越多個(gè)session的事務(wù)),而且很多業(yè)務(wù)系統(tǒng)本來(lái)就是使用spring來(lái)管理的事務(wù),因此mybatis最好與spring集成起來(lái)使用。
項(xiàng)目 |
版本 |
下載地址 |
說(shuō)明 |
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 |
|
我們不但要明白如何使用,更要明白為何要這么使用。
SqlSessionFactoryBean是1個(gè)工廠bean,它的作用就是解析配置(數(shù)據(jù)源、別名等)。
MapperFactoryBean是1個(gè)工廠bean,在spring容器里,工廠bean是有特殊用處的,當(dāng)spring將工廠bean注入到其他bean里時(shí),它不是注入工廠bean本身而是調(diào)用bean的getObject方法。我們接下來(lái)就看看這個(gè)getObjec方法干了些甚么:
看到這里大家應(yīng)當(dāng)就很明白了,這個(gè)方法和我們之前單獨(dú)使用Mybatis的方式是1樣的,都是先獲得1個(gè)Sqlsession對(duì)象,然后再?gòu)腟qlsession里獲得Mapper對(duì)象(再次強(qiáng)調(diào)Mapper是1個(gè)代理對(duì)象,它代理的是mapperInterface接口,而這個(gè)接口是用戶提供的dao接口)。自然,終究注入到業(yè)務(wù)層就是這個(gè)Mapper對(duì)象。
實(shí)際的項(xiàng)目1般來(lái)講不止1個(gè)Dao,如果你有多個(gè)Dao那就依照上面的配置順次配置便可。
前1節(jié)講了如何注入1個(gè)mapper對(duì)象到業(yè)務(wù)層, mapper的行動(dòng)依賴于配置,mybatis默許
上一篇 Java Thread(線程)案例詳解sleep和wait的區(qū)別
下一篇 Java網(wǎng)絡(luò)編程,通過(guò)TCP,Socket實(shí)現(xiàn)多對(duì)一的局域網(wǎng)聊天室