1. 程式人生 > >Mybatis(六) Spring整合mybatis

Mybatis(六) Spring整合mybatis

sql 兩種 事情 dbcp target ges wid 總結 多人

      心莫浮躁~踏踏實實走,一步一個腳印,就算不學習,玩,能幹嘛呢?人生就是那樣,要找點有意思,打發時間的事情來做,而鉆研技術,動腦動手的過程,還是比其他工作更有意思些~ so,努力啥的都是強迫自己做自以為努力正確的事情,想幹嘛就幹嘛把!    

                --WH

一、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的逆向工程

Mybatis(六) Spring整合mybatis