激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一有一级毛片视频 | 国产精品久久久久久模特 | 在线成人免费观看视频 | 免费观看高清视频网站 | 亚洲一区在线视频观看 | 国产精品午夜未成人免费观看 | 中文字幕激情 | 欧美日韩爱爱视频 | 国产在线精品一区二区三区不卡 | 一区二区三区在线播放视频 | 欧美一级视频在线 | 一区二区三区视频在线观看 | 国产精品成人av片免费看最爱 | 久久久入口| 亚洲射逼| 一区二区三区日韩在线 | 精品一区二区久久久久久按摩 | 九九热精彩视频 | 精品久久久久久久久久久下田 | 欧美一级高清片_欧美高清aa | 正在播放91精 | 99久久久精品视频 | 国产在线导航 | 日韩欧美动作影片 | 国产午夜小视频 | 欧美18—19sex性hd按摩 | 羞羞电影网 | 国产一区影院 | 韩国一级免费视频 | 国人精品视频在线观看 | 成人在线a| 51国产偷自视频区视频小蝌蚪 | 91精品国产一区二区三区四区在线 | 韩国精品久久久 | 久久骚| 成人国产精品色哟哟 | 久久毛片免费 | 九草在线 | 日本看片一区二区三区高清 | 一级做a爱片久久 | 亚洲成人免费电影 |