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

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

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指定輸出結果的映射類型。

如果在指定類型時輸入類型全路徑,不方便進行開發。可以針對parametertype或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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本不卡免费新一二三区 | 小sao货ji巴cao死你视频 | 都市风流贵妇激情 | 午夜影院费试看黄 | bnb998八度免费影院丫意浓 | 精品亚洲视频在线观看 | 爱爱调教 | 欧美添下面视频免费观看 | 精品欧美一区二区在线观看欧美熟 | 欧美黑人ⅹxxx片 | 午夜深情在线观看免费 | 亚洲 色 欧美 爱 视频 日韩 | 动漫女性扒开尿口羞羞漫画 | 51国产午夜精品免费视频 | 日韩一级免费毛片 | 紧身裙女教师波多野结衣 | 国产在亚洲线视频观看 | 调教开发新婚娇妻放荡 | 亚欧成人中文字幕一区 | 女女性恋爱免费 | 国产精品va在线观看无 | 女人和拘做受全过程免费 | 奇米社区 | 不良小说| 国产123区在线视频观看 | 99福利影院 | 亚洲好色网 | 成人女人天堂午夜视频 | 国产午夜永久福利视频在线观看 | 忘忧草在线社区WWW日本直播 | 四虎成人影院 | 亚洲国产日韩欧美一区二区三区 | 国产欧美日韩一区二区三区在线 | 青青在线香蕉国产精品 | 国产成人啪精品午夜在线观看 | 国产成人免费在线视频 | 男人天堂亚洲 | 婷婷色综合网 | 护士videossexo另类 | 欧美最猛性xxxxx男男 | ai换脸明星造梦工厂忘忧草 |