最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring整合Mybatis思路梳理總結(jié)

 更新時間:2022年02月12日 15:08:40   作者:一切隨緣~~~  
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作,本篇文章帶你了解Spring整合Mybatis的思路

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)文章

最新評論

辰溪县| 红安县| 聂拉木县| 河曲县| 宜丰县| 建阳市| 赤城县| 岳池县| 襄汾县| 余干县| 民权县| 和静县| 高清| 濮阳县| 泾川县| 桐庐县| 万盛区| 汕头市| 登封市| 资阳市| 大关县| 永善县| 崇信县| 松江区| 正镶白旗| 桦南县| 辉南县| 合作市| 阜平县| 尼木县| 通许县| 贺兰县| 黔西县| 长子县| 客服| 昂仁县| 余姚市| 万年县| 防城港市| 宣城市| 华坪县|