欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  • Spring基于注解的緩存聲明深入探究

    Spring基于注解的緩存聲明深入探究

    spring boot對緩存支持非常靈活,我們可以使用默認(rèn)的EhCache,也可以整合第三方的框架,只需配置即可,下面這篇文章主要給大家介紹了關(guān)于SpringBoot學(xué)習(xí)之基于注解緩存的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Java枚舉類型enum的詳解及使用

    Java枚舉類型enum的詳解及使用

    這篇文章主要介紹了Java枚舉類型enum的詳解及使用的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 詳解Java編程中向量(Vector)的應(yīng)用

    詳解Java編程中向量(Vector)的應(yīng)用

    這篇文章主要介紹了Java中的向量(Vector)的應(yīng)用,Vector也是Java中比較常用的一個類,需要的朋友可以參考下
    2015-10-10
  • 詳解Java修飾符

    詳解Java修飾符

    Java語言提供了很多修飾符,主要分為以下兩類:訪問修飾符;非訪問修飾符。修飾符用來定義類、方法或者變量,通常放在語句的最前端。我們通過下面的例子來說明,下面就跟小編一起來看下吧
    2016-12-12
  • java String 可變性的分析

    java String 可變性的分析

    這篇文章主要介紹了java String 可變性的分析的相關(guān)資料,通常大家都認(rèn)為java String 是不可變的,這里分析下源碼來說明它的可變性,需要的朋友可以參考下
    2017-03-03
  • Java根據(jù)ip地址獲取歸屬地實例詳解

    Java根據(jù)ip地址獲取歸屬地實例詳解

    這篇文章主要為大家介紹了Java根據(jù)ip地址獲取歸屬地實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 解決Java Redis刪除HashMap中的key踩到的坑

    解決Java Redis刪除HashMap中的key踩到的坑

    這篇文章主要介紹了解決Java Redis刪除HashMap中的key踩到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java實現(xiàn)通用分頁(后端)

    java實現(xiàn)通用分頁(后端)

    這篇文章主要介紹了java實現(xiàn)通用分頁(后端)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring boot項目使用thymeleaf模板過程詳解

    Spring boot項目使用thymeleaf模板過程詳解

    這篇文章主要介紹了Spring boot項目使用thymeleaf模板過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 解決spring-boot-maven-plugin報紅的問題

    解決spring-boot-maven-plugin報紅的問題

    這篇文章主要給大家介紹一下如何解決spring-boot-maven-plugin報紅的問題,文中通過圖文講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2023-08-08

最新評論