最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年05月19日 11:29:23   作者:Joanna.Yan  
這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以參考下

前面有寫(xiě)到Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(二)——MyBatis原始Dao開(kāi)發(fā)和mapper代理開(kāi)發(fā)

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

properties(屬性)

setting(全局配置參數(shù))

typeAliases(類名別名)

typeHandlers(類名處理器)

objectFactory(對(duì)象工廠)

plugins(插件)

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

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

  transationManager(事務(wù)管理)

  dataSource(數(shù)據(jù)源)

mappers(映射器)

1.properties(屬性)

需求:

將數(shù)據(jù)庫(kù)連接參數(shù)單獨(dú)配置在db.properties中,只需要在SqlMapConfig.xml中加載db.properties的屬性值。在SqlMapConfig.xml中就不需要對(duì)數(shù)據(jù)庫(kù)連接參數(shù)硬編碼。

將數(shù)據(jù)庫(kù)連接參數(shù)只配置在db.properties中,原因:方便對(duì)參數(shù)進(jìn)行統(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>
  <!-- 加載數(shù)據(jù)庫(kù)文件db.properties -->
  <properties resource="db.properties">
   <!-- properties中陪可以配置一些屬性名和屬性值,此處的優(yōu)先加載 -->
  <!-- <property name="driver" value=""/> -->
  </properties>
 
  <!-- 和Spring整合后,environments配置將廢除 -->
 <environments default="development">
  <environment id="development">
   <!-- 使用JDBC事務(wù)管理,事務(wù)控制由mybatis管理 -->
   <transactionManager type="JDBC"/>
   <!-- 數(shù)據(jù)庫(kù)連接池,由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將按照下面的順序來(lái)加載屬性:

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

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

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

所以這里可能就會(huì)存在一個(gè)問(wèn)題:假如UserMapper.xml中的有一個(gè)statement的入?yún)⒚麨閚ame,

而db.properties中也有一個(gè)參數(shù)名叫name。

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

建議:

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

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

2.settings(全局參數(shù)配置)

MyBatis框架在運(yùn)行時(shí)可以調(diào)整一些運(yùn)行參數(shù)。

比如:開(kāi)啟二級(jí)緩存、開(kāi)啟延遲加載......

全局參數(shù)將會(huì)影響MyBatis的運(yùn)行行為。

 

3.typeAliases(別名)重點(diǎn)

3.1需求

在mapper.xml中,定義很多的statement,而statement需要parameterType指定輸入?yún)?shù)的類型,需要resultType指定輸出結(jié)果的映射類型。

如果在指定類型時(shí)輸入類型全路徑,不方便進(jìn)行開(kāi)發(fā)??梢葬槍?duì)parameterType或resultType指定的類型定義一些別名,在mapper.xml中通過(guò)別名定義,方便開(kāi)發(fā)。

3.2mybatis默認(rèn)支持別名

3.3自定義別名

3.3.1單個(gè)別名定義

<!-- 單個(gè)別名定義: --> 
 <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會(huì)自動(dòng)掃描包中的pojo類,自定義別名,別名就是類名(首字母大寫(xiě)或小寫(xiě)都可以) -->
  <typeAliases>
   <package name="joanna.yan.mybatis.entity"/>
   <!-- <package name="其它包名"/> -->
  </typeAliases>

4.typeHandlers(類型處理器)

MyBatis中通過(guò)typeHandlers完成jbdc類型和java類型的轉(zhuǎn)換。通常情況下,MyBatis提供的類型處理器滿足日常需要,不需要自定義。

5.mappers(映射配置)

5.1通過(guò)resource加載單個(gè)文件

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

5.2通過(guò)mapper接口加載單個(gè)mapper

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

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

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

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

以上所述是小編給大家介紹的Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java?Spring框架的注解式開(kāi)發(fā)你了解嗎

    Java?Spring框架的注解式開(kāi)發(fā)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Spring框架的注解式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • java獲取百度網(wǎng)盤(pán)真實(shí)下載鏈接的方法

    java獲取百度網(wǎng)盤(pán)真實(shí)下載鏈接的方法

    這篇文章主要介紹了java獲取百度網(wǎng)盤(pán)真實(shí)下載鏈接的方法,涉及java針對(duì)URL操作及頁(yè)面分析的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐

    Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐

    本文主要介紹了Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06
  • 一個(gè)簡(jiǎn)單的Java文件讀取的進(jìn)度條

    一個(gè)簡(jiǎn)單的Java文件讀取的進(jìn)度條

    這篇文章主要介紹了一個(gè)簡(jiǎn)單的Java文件讀取的進(jìn)度條,寫(xiě)一個(gè)可以使用的?demo,涉及到了文件的相對(duì)路徑問(wèn)題,需要的朋友可以參考下
    2023-04-04
  • Java中Object轉(zhuǎn)換為L(zhǎng)ist類型的實(shí)現(xiàn)方法

    Java中Object轉(zhuǎn)換為L(zhǎng)ist類型的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java中Object轉(zhuǎn)換為L(zhǎng)ist類型的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringCloud中的Consul詳解

    SpringCloud中的Consul詳解

    這篇文章主要介紹了SpringCloud中的Consul知識(shí),本文使用的是docker-compose方式管理consul服務(wù),直接啟動(dòng)即可,需要的朋友可以參考下
    2022-03-03
  • java常用工具類 Reflect反射工具類、String字符串工具類

    java常用工具類 Reflect反射工具類、String字符串工具類

    這篇文章主要為大家詳細(xì)介紹了java常用工具類,包括Reflect反射工具類、String字符串工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Java實(shí)戰(zhàn)之課程信息管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之課程信息管理系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)課程信息管理系統(tǒng),文中采用到的技術(shù)有:Springboot、SpringMVC、MyBatis、FreeMarker等,感興趣的可以了解一下
    2022-04-04
  • 詳解Spring Boot中Controller用法

    詳解Spring Boot中Controller用法

    Controller是SpringBoot里最基本的組件,他的作用是把用戶提交來(lái)的請(qǐng)求通過(guò)對(duì)URL的匹配,分配個(gè)不同的接收器,再進(jìn)行處理,然后向用戶返回結(jié)果。下面通過(guò)本文給大家介紹Spring Boot中Controller用法,需要的朋友參考下
    2017-05-05
  • Java利用多線程和分塊實(shí)現(xiàn)快速讀取文件

    Java利用多線程和分塊實(shí)現(xiàn)快速讀取文件

    在工作中經(jīng)常會(huì)有接收文件并且讀取落庫(kù)的需求,讀取方式都是串行讀取,所以本文主要為大家介紹一下如何利用多線程和分塊實(shí)現(xiàn)快速讀取文件,希望對(duì)大家有所幫助
    2023-09-09

最新評(píng)論

靖州| 宜州市| 晴隆县| 尤溪县| 化州市| 来宾市| 增城市| 芦山县| 昌邑市| 汉寿县| 韶关市| 绥化市| 威宁| 康乐县| 卢龙县| 贵南县| 昆明市| 黄梅县| 金门县| 新巴尔虎右旗| 田阳县| 沈丘县| 绥芬河市| 乡宁县| 巴中市| 建平县| 镇雄县| 曲阜市| 福海县| 台中市| 铁力市| 桐梓县| 枞阳县| 三台县| 平山县| 封开县| 五寨县| 仁化县| 达尔| 沽源县| 项城市|