一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

2020-10-07 22:49Joanna.Yan JAVA教程

這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以參考下

前面有寫到spring+springmvc+mybatis深入學習及搭建(二)——mybatis原始dao開發和mapper代理開發

mybatis的全局配置文件sqlmapconfig.xml,配置內容和順序如下:

properties(屬性)

setting(全局配置參數)

typealiases(類名別名)

typehandlers(類名處理器)

objectfactory(對象工廠)

plugins(插件)

environments(環境集合屬性對象)

  environment(環境子屬性對象)

  transationmanager(事務管理)

  datasource(數據源)

mappers(映射器)

1.properties(屬性)

需求:

將數據庫連接參數單獨配置在db.properties中,只需要在sqlmapconfig.xml中加載db.properties的屬性值。在sqlmapconfig.xml中就不需要對數據庫連接參數硬編碼。

將數據庫連接參數只配置在db.properties中,原因:方便對參數進行統一管理,其它xml可以引用該db.properties。

在classpath下定義db.properties文件:

?
1
2
3
4
jdbc.driver=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://localhost:3306/mybatisdemo
jdbc.username=root
jdbc.password=

在sqlmapconfig.xml加載屬性文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="utf-8"?>
<!doctype configuration
public "-//mybatis.org//dtd config 3.0//en"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
  <!-- 加載數據庫文件db.properties -->
  <properties resource="db.properties">
   <!-- properties中陪可以配置一些屬性名和屬性值,此處的優先加載 -->
  <!-- <property name="driver" value=""/> -->
  </properties>
 
  <!-- 和spring整合后,environments配置將廢除 -->
 <environments default="development">
  <environment id="development">
   <!-- 使用jdbc事務管理,事務控制由mybatis管理 -->
   <transactionmanager type="jdbc"/>
   <!-- 數據庫連接池,由mybatis管理 -->
   <datasource type="pooled">
    <property name="driver" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
   </datasource>
  </environment>
 </environments>
 </configuration>

properties特性:

注意:mybatis將按照下面的順序來加載屬性:

(1)在properties元素體內定義的屬性首先被讀取。

(2)然后會讀取properties元素中resourse或url加載的屬性,它會覆蓋已讀取的同名屬性。

(3)最后讀取parametertype傳遞的屬性,它會覆蓋已讀取的同名屬性。

所以這里可能就會存在一個問題:假如usermapper.xml中的有一個statement的入參名為name,

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

而db.properties中也有一個參數名叫name。

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

那最終usermapper.xml中的select會讀取到name=root,而不是用戶傳入的值。

建議:

不要在properties元素體內添加任何屬性值,只將屬性值定義在properties文件中。

在properties文件中定義屬性名要有一定的特殊性,如:xxx.xxx.xxx,jdbc.url,jbdc.username。

2.settings(全局參數配置)

mybatis框架在運行時可以調整一些運行參數。

比如:開啟二級緩存、開啟延遲加載......

全局參數將會影響mybatis的運行行為。

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

3.typealiases(別名)重點

3.1需求

在mapper.xml中,定義很多的statement,而statement需要parametertype指定輸入參數的類型,需要resulttype指定輸出結果的映射類型。

如果在指定類型時輸入類型全路徑,不方便進行開發??梢葬槍arametertype或resulttype指定的類型定義一些別名,在mapper.xml中通過別名定義,方便開發。

3.2mybatis默認支持別名

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

3.3自定義別名

3.3.1單個別名定義

?
1
2
3
4
<!-- 單個別名定義: -->
 <typealiases>
  <typealias type="joanna.yan.mybatis.entity.user" alias="user"/>
 </typealiases>

引用別名:

?
1
2
3
<select id="finduserbyid" parametertype="int" resulttype="user">
  select * from user where id=#{id}
</select>

3.3.2批量定義別名(常用)

?
1
2
3
4
5
6
7
<!--
  批量別名的定義:
  package:指定包名,mybatis會自動掃描包中的pojo類,自定義別名,別名就是類名(首字母大寫或小寫都可以) -->
  <typealiases>
   <package name="joanna.yan.mybatis.entity"/>
   <!-- <package name="其它包名"/> -->
  </typealiases>

4.typehandlers(類型處理器)

mybatis中通過typehandlers完成jbdc類型和java類型的轉換。通常情況下,mybatis提供的類型處理器滿足日常需要,不需要自定義。

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

5.mappers(映射配置)

5.1通過resource加載單個文件

?
1
2
3
4
5
<!-- 加載映射文件 -->
 <mappers>
  <!-- 通過resource方法一次加載一個映射文件 -->
  <mapper resource="mapper/usermapper.xml"/>
   </mappers>

5.2通過mapper接口加載單個mapper

?
1
2
3
4
5
6
7
8
9
<!-- 加載映射文件 -->
 <mappers>
  <!--
  通過mapper接口加載單個映射配置文件
   遵循一定的規范:需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄中;
   以上規范的前提是:使用的是mapper代理方法;
   -->
  <mapper class="joanna.yan.mybatis.mapper.usermapper"/>
 </mappers>

按照上邊的規范,將mapper.java和mapper.xml放在一個目錄,且同名。

Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析

5.3批量加載mapper(推薦使用)

?
1
2
3
4
5
6
7
<mappers>
  <!-- 批量加載映射配置文件,mybatis自動掃描包下的mapper接口進行加載;
   遵循一定的規范:需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄中;
   以上規范的前提是:使用的是mapper代理方法;
   -->
  <package name="joanna.yan.mybatis.mapper"/>
 </mappers>

以上所述是小編給大家介紹的spring+springmvc+mybatis深入學習及搭建(三)之mybatis全局配置文件解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/Joanna-Yan/p/6874672.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爽好舒服使劲添高h视频 | 91肥熟国产老肥熟在线 | 亚洲成人77777| 私人黄色影院 | 天天干狠狠操 | 双性太子| sese在线| 国产伦精品一区二区三区免费迷 | 三级黄色片在线免费观看 | 日本高清色视影www日本 | 日本大乳护士的引诱图片 | 精品一区二区三区在线视频观看 | 暖暖在线日本 | 嫩草影院地址一地址二 | 国产成人在线视频 | 亚洲 日韩经典 中文字幕 | 精品日韩视频 | 国产欧美va欧美va香蕉在线观 | 爱情岛论坛自拍永久入口 | 日韩一区二区三 | 亚洲福利电影一区二区? | 日本特黄一级大片 | 日韩美女强理论片 | 国内精品99 | 疯狂伦交1一6 小说 风间由美在线 | 海绵宝宝第二季全集免费观看 | 久久一本综合 | 天堂在线观看中文字幕 | 青青草原国产在线 | 精品国产线拍大陆久久尤物 | 成人在线视频在线观看 | 日本一区二区在线不卡 | 韩国漂亮美女三级在线观看 | 污文啊好棒棒啊好了 | 国产高清国内精品福利 | 911福利视频 | 国产另类视频一区二区三区 | 欧美xbxbxbbxxbb精品| 法国女佣系列在线播放 | 日韩精品福利视频一区二区三区 | 草莓视频看污 |