欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

前面有寫到Spring+SpringMVC+MyBatis深入學習及搭建(二)——MyBatis原始Dao開發(fā)和mapper代理開發(fā)

創(chuàng)新互聯建站專注于新華網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供新華營銷型網站建設,新華網站制作、新華網頁設計、新華網站官網定制、微信小程序開發(fā)服務,打造新華網絡公司原創(chuàng)品牌,更為您提供新華網站排名全網營銷落地服務。

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

properties(屬性)

setting(全局配置參數)

typeAliases(類名別名)

typeHandlers(類名處理器)

objectFactory(對象工廠)

plugins(插件)

environments(環(huán)境集合屬性對象)

environment(環(huán)境子屬性對象)

transationManager(事務管理)

dataSource(數據源)

mappers(映射器)

1.properties(屬性)

需求:

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

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

在classpath下定義db.properties文件:

jdbc.driver=com.MySQL.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/mybatisdemo
jdbc.username=root
jdbc.password=

在SqlMapConfig.xml加載屬性文件:

<?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中陪可以配置一些屬性名和屬性值,此處的優(yōu)先加載 -->
  <!-- <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指定輸出結果的映射類型。

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

3.2mybatis默認支持別名

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

3.3自定義別名

3.3.1單個別名定義

<!-- 單個別名定義: --> 
 <typeAliases>
  <typeAlias type="joanna.yan.mybatis.entity.User" alias="user"/>
 </typeAliases>

引用別名:

<select id="findUserById" parameterType="int" resultType="user">
  select * from user where id=#{id}
</select>

3.3.2批量定義別名(常用)

<!-- 
  批量別名的定義:
  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加載單個文件

<!-- 加載映射文件 -->
 <mappers>
  <!-- 通過resource方法一次加載一個映射文件 -->
  <mapper resource="mapper/UserMapper.xml"/>
   </mappers>

5.2通過mapper接口加載單個mapper

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

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

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

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

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

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

網頁名稱:Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析
標題路徑:http://chinadenli.net/article6/gsgeog.html

成都網站建設公司_創(chuàng)新互聯,為您提供Google、面包屑導航移動網站建設網站營銷、網站收錄響應式網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

商城網站建設