日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis-spring 项目简介

發布時間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis-spring 项目简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mybatis-spring 主要是為了解決 spring3.0 中支持 mybatis3.0

1 mybatis-spring 主要包含以下幾個部分

  • 數據源
  • SqlSessionFactory
  • SqlSessionTemplate
  • Mapper
  • 事務處理

在mybatis中構建 SqlSessionFactory 對象,讓它來產生 SqlSession, 在?mybatis-spring 項目中?SqlSession 是通過SqlSessionTemplate 來實現的,它提供了對SqlSession 的封裝。

所以通過?SqlSessionTemplate 可以得到 Mapper。

?

2 構建?SqlSessionFactory ,它的作用是生成?SqlSession 。一般地,只需配置兩個參數 1)數據源 2)mybatis 配置文件路徑

?

3 配置 SqlSessionTemplate ,是一個模板類,通過調用 SqlSession 來完成工作,所以在?mybatis-spring 項目中,它是一個核心類。

構建方法有兩種

1)只有一個參數?SqlSessionFactory?

2)兩個參數 一個是?SqlSessionFactory 另一個是執行器類型。

方法一,代碼如下

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg index="0" ref="sqlSessionFactory"/></bean>

方法二,兩個參數

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg index="0" ref="sqlSessionFactory"/><constructor-arg index="1" value="BATCH"/></bean>

ExecutorType 的取值范圍是:SIMPLE/REUSE/BATCH

如果同時設置了SqlSessionFactory 和?SqlSessionTemplate ,系統會使?SqlSessionTemplate 覆蓋掉?SqlSessionFactory 。

?

4 配置 Mapper ,大部分場景中不建議使用?SqlSessionFactory 和?SqlSessionTemplate。而采用Mapper 接口編程的方式。關鍵類:MapperFactoryBean

在 mybatis 中,Mapper只是一個接口,而不是一個實現類。它是由 mybatis 通過動態代理的形式生成代理對象去運行,spring 沒有辦法生成實現類。

mybatis-spring 提供了 MapperFactoryBean 作為中介,可以配置他來獲得我們需要的 Mapper。配置?MapperFactoryBean 有3個參數 MapperInterface,SqlSessionFactory,SqlSessionTemplate

  • MapperInterface,用來定制接口,當我們的接口繼承了配置的接口,那么 Mybatis 就認為他是一個Mapper
  • SqlSessionFactory,當?SqlSessionTemplate 沒有配置的時候,mybatis-spring 才會去設置它
  • SqlSessionTemplate,當被設置的時候,SqlSessionFactory 失效。

?

4.2 使用掃描的方式配置Mapper,關鍵類:MapperScannerConfigurer,他的可配屬性

  • basePackage,spring自動掃描的包,會自動掃描子包
  • annotationClass,表示類只有被這個注解標注才進行掃描
  • sqlSessionFactoryBeanName,指定spring 中定義 sqlSessionFactory bean名稱。如果被定義,sqlSessionFactory 將不起作用。
  • sqlSessionTemplateBeanName,指定spring 中定義 sqlSessionTemplate bean名稱。如果被定義,sqlSessionFactoryBeanName 將不起作用。
  • markerInterface,指定實現了什么接口就認為是 Mapper。

注 意 , 沒 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 為 MapperScannerConfigurer 將會創建 MapperFactoryBean,之后自動裝配。但是,如果你使 用了一個 以上的 DataSource ,那 么自動 裝配可 能會失效 。這種 情況下 ,你可 以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 屬性來設置正確的 bean 名 稱來使用。這就是它如何來配置的,注意 bean 的名稱是必須的,而不是 bean 的引用,因 此,value 屬性在這里替代通常的 ref?。

?

5 配置事務,spring 和 mybatis結合后,是使用Spring AOP 去管理事務的。配置也很簡單。

<!-- 支持注解 --> <context:annotation-config/><!-- 事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- 聲明式事務 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

?

總結

以上是生活随笔為你收集整理的mybatis-spring 项目简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。