天天看點

Mybatis(六) Spring整合mybatis

      心莫浮躁~踏踏實實走,一步一個腳印,就算不學習,玩,能幹嘛呢?人生就是那樣,要找點有意思,打發時間的事情來做,而鑽研技術,動腦動手的過程,還是比其他工作更有意思些~ 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的逆向工程