溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring整合Mybatis思路的示例分析

發布時間:2022-02-14 09:40:55 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

這篇文章主要介紹Spring整合Mybatis思路的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

引入相關依賴

Spring

Myabtis

mysql

Mybatsi-spring

如何整合?

Spring:

項目管理框架,主要是用來負責項目中組件對象的創建,使用,銷毀。

Mybatis:

持久層框架,主要是用來簡化原始jdbc技術對數據庫訪問操作。

== >整合思路:通過Spring框架接管Mybatis框架中核心對象的創建。

Mybatis框架中核心對象是誰?

  • sqlSession?

  • SqlSessionFactory?

  • SqlSessionFactoryBuilder?

  • dao?

最核心的對象必然是:SqlSessionFactory。

SqlSessionFactoryBuilder的作用就是讀取解析配置文件==【數據源配置,mapper文件配置】==,來創建SqlSessionFactory。

SqlSession的創建又依靠于SqlSessionFactory。

== > SqlSessionFactory是最核心的對象。

SM整合

整合思路:通過Spring框架接管Mybatis中核心的SqlSessionFactory對象的創建。

SqlSessionFactory是簡單對象還是復雜對象呢?

如果是簡單對象

<bean id="" class=""/>

如果是復雜對象

通過查看源碼得知,SqlSessionFactory是一個接口類型的復雜對象。

如何創建?

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");

寫完之后,我們可以發現,這段代碼是固定不變的,這個項目要寫,別的項目也要寫。

于是Mybatis官方替我們寫好了,對這段代碼進行了封裝:Mybatis-spring.jar。

jar包里提供了一個類:SqlSessionFactoryBean。

我們以后只要引Mybatsi-spring依賴就可以了,不用在自己去寫了。

值得注意的是:mybatis官方提供SqlSessionFactoryBean,不在使用mybaits主配置文件。

主配置文件的核心就是【數據源】【mapper文件的注冊】

所以我們要注入數據源對象,引入druid依賴,注入mapper文件的位置?!綝I思想,依賴注入】

<!-- 配置Spring.xml文件 -->

<!-- 創建數據源對象 -->
<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/>

<!-- 創建SqlSessionFactory對象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 注入數據源對象 -->
    <property name="dataSource" ref="dataSource" />
    <!-- 注入mapper文件的位置 -->
    <property name="mapperLocations">
        <array>
            <value>.....</value>
        </array>
    </property>
<bean/>

以上是“Spring整合Mybatis思路的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女