Spring整合Mybatis思路梳理總結(jié)
Spring整合Myabtis思路的分析
引入相關(guān)依賴
Spring
Myabtis
mysql
Mybatsi-spring
…
如何整合?
Spring:
項目管理框架,主要是用來負(fù)責(zé)項目中組件對象的創(chuàng)建,使用,銷毀。
Mybatis:
持久層框架,主要是用來簡化原始jdbc技術(shù)對數(shù)據(jù)庫訪問操作。
== >整合思路:通過Spring框架接管Mybatis框架中核心對象的創(chuàng)建。
Mybatis框架中核心對象是誰?
- sqlSession?
- SqlSessionFactory?
- SqlSessionFactoryBuilder?
- dao?
最核心的對象必然是:SqlSessionFactory。
SqlSessionFactoryBuilder的作用就是讀取解析配置文件==【數(shù)據(jù)源配置,mapper文件配置】==,來創(chuàng)建SqlSessionFactory。
SqlSession的創(chuàng)建又依靠于SqlSessionFactory。
== > SqlSessionFactory是最核心的對象。
SM整合
整合思路:通過Spring框架接管Mybatis中核心的SqlSessionFactory對象的創(chuàng)建。
SqlSessionFactory是簡單對象還是復(fù)雜對象呢?
如果是簡單對象
<bean id="" class=""/>
如果是復(fù)雜對象
通過查看源碼得知,SqlSessionFactory是一個接口類型的復(fù)雜對象。
如何創(chuàng)建?
is = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder(),build(is);
1).SqlSessionFactory(Factory)Bean implements FactoryBean<SqlSessionFactory> { SqlSessionFactory getObject() { is = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder(),build(is); } Class getClass() { return SqlSessionFactory.class; } boolean isSingleton() { return true; } } 2).工廠管理SqlSessionFactory <bean id="sqlSessionFactory" class="xxx.SqlSessionFactoryBean"> 3).工廠獲取 SqlSessionFactory sf = context.getBean("sqlSessionFactory");
寫完之后,我們可以發(fā)現(xiàn),這段代碼是固定不變的,這個項目要寫,別的項目也要寫。
于是Mybatis官方替我們寫好了,對這段代碼進(jìn)行了封裝:Mybatis-spring.jar。
jar包里提供了一個類:SqlSessionFactoryBean。
我們以后只要引Mybatsi-spring依賴就可以了,不用在自己去寫了。
值得注意的是:mybatis官方提供SqlSessionFactoryBean,不在使用mybaits主配置文件。
主配置文件的核心就是【數(shù)據(jù)源】【mapper文件的注冊】
所以我們要注入數(shù)據(jù)源對象,引入druid依賴,注入mapper文件的位置?!綝I思想,依賴注入】
<!-- 配置Spring.xml文件 --> <!-- 創(chuàng)建數(shù)據(jù)源對象 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" > <property name="driverName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/xxx"/> <property name="username" value="root"/> <property name="password" value="root"/> <bean/> <!-- 創(chuàng)建SqlSessionFactory對象 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入數(shù)據(jù)源對象 --> <property name="dataSource" ref="dataSource" /> <!-- 注入mapper文件的位置 --> <property name="mapperLocations"> <array> <value>.....</value> </array> </property> <bean/>
到此這篇關(guān)于Spring整合Mybatis思路梳理總結(jié)的文章就介紹到這了,更多相關(guān)Spring整合Mybatis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Java Redis刪除HashMap中的key踩到的坑
這篇文章主要介紹了解決Java Redis刪除HashMap中的key踩到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Spring boot項目使用thymeleaf模板過程詳解
這篇文章主要介紹了Spring boot項目使用thymeleaf模板過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07解決spring-boot-maven-plugin報紅的問題
這篇文章主要給大家介紹一下如何解決spring-boot-maven-plugin報紅的問題,文中通過圖文講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2023-08-08