心莫浮躁~踏踏實實走,一步一個腳印,就算不學習,玩,能幹嘛呢?人生就是那樣,要找點有意思,打發時間的事情來做,而鑽研技術,動腦動手的過程,還是比其他工作更有意思些~ so,努力啥的都是強迫自己做自以為努力正确的事情,想幹嘛就幹嘛把!
--WZY
一、Spring整合mybatis思路
非常簡單,這裡先回顧一下mybatis最基礎的根基,
mybatis,有兩個配置檔案
全局配置檔案SqlMapConfig.xml(配置資料源,全局變量,加載映射檔案等東西)
映射檔案xxxMapper.xml,用來對輸入參數輸出參數,資料庫語句做配置的。
mybatis配置好之後的使用步驟
1、擷取sqlMapConfig.xml的位置然後進行加載
2、通過sqlMapConfig.xml中的内容建立出sqlsessionFactory對象
3、然後通過sqlsessionFactory對象建立出sqlsession對象
4、有了sqlsession對象就可以進行相應的操作了。
內建思路
有了上面的一些知識回顧,那麼就有思路讓spring繼承mabatis了。
1、讓spring來管理資料源資訊,sqlMapConfig.xml中就不需要加載資料源了。交給spring管理
2、讓spring通過單例方式管理SqlSessionFactory,隻需要一個SqlSessionFactory幫我們生成sqlsession即可。也就是需要sqlsession對象就讓sqlsessionfactory生成。是以是單例方式。
3、讓spring建立sqlsession bean。也就是通過SqlSessionFactory建立SqlSession,
4、如果是使用mapper代理開發的方式,那麼持久層的mapper都需要由spring進行管理,spring和mybatis整合生成mapper代理對象。
二、工程搭建
2.1、建立java工程
2.2、添加jar包
Mybatis的核心和依賴包
資料庫驅動包
spring的包
junit包
spring和mybatis整合包
dbcp連接配接池
mybatis和spring整合所需要的jar包
2.3、
2.4、添加SqlMapConfig.xml
sqlMapConfig.xml
2.5、映射配置檔案Student.xml
Student.xml
2.6、整合spring的配置檔案applicationContext.xml
applicationContext.xml
2.7、db.properties
db.properties
2.8、總觀,就編寫了四個配置檔案,和一個javabean
三、開發原始dao
上面是一個通用的配置,我們在使用mybatis時,有兩個模式,一種就是原始dao的方式,一種就是使用mapper代理的方式,這裡就介紹原始dao是如何內建spring的
StudengDao:接口
StudentDaoImpl:實作類
使用原始dao開發的缺點就是隻能通過selectOne或者selectList等操作,而不是直接調用映射配置檔案中的方法,不能一目了然。
spring中配置StudentDao
很多人這裡會有疑問,覺得在spring中配置了StudengDao這個bean,但是我們根本沒用在StudengDaoImpl中用set方法讓其自動注入呀?原因就在StudengDaoImpl中繼承了sqlSessionDaoSupport這個類,這個類幫我們做了,是以,我們直接通過this.getSqlSession()擷取對象即可。
測試:
四、mapper方式開發
編寫mapper接口,StudentMapper.java
編寫mapper映射檔案 StudengMapper.xml,注意兩個要放在一起。名稱要相同
spring中生成mapper代理對象
View Code
測試:
五、總結
就這樣結束了,spring內建Mybatis,很簡單,有什麼對象都由spring來建立即可。注意原始dao和mapper這兩種開發方式的不同。結果都市一樣的,方式不同而已。這個在第一節講Mybatis就已經講解過了,這裡不在陳述,下一章節講解一下Mybatis的逆向工程