亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java的MyBatis框架中關(guān)鍵的XML字段映射的配置參數(shù)詳解

 更新時(shí)間:2016年06月01日 16:39:34   作者:fhd001  
將XML文件的schema字段映射到數(shù)據(jù)庫(kù)的schema是我們操作數(shù)據(jù)庫(kù)的常用手段,這里我們就來(lái)整理一些Java的MyBatis框架中關(guān)鍵的XML字段映射的配置參數(shù)詳解,需要的朋友可以參考下

properties
這些是外部化的,可替代的屬性,這些屬性也可以配置在典型的Java屬性配置文件中,或者通過(guò)properties元素的子元素來(lái)傳遞。例如:

<properties resource="org/mybatis/example/config.properties">  
  <property name="username" value="dev_user"/>  
  <property name="password" value="F2Fa3!33TYyg"/>  
</properties>  

其中的屬性就可以在整個(gè)配置文件中使用,使用可替換的屬性來(lái)實(shí)現(xiàn)動(dòng)態(tài)配置。比如:

<dataSource type="POOLED">  
  <property name="driver" value="${driver}"/>  
  <property name="url" value="${url}"/>  
  <property name="username" value="${username}"/>  
  <property name="password" value="${password}"/>  
</dataSource> 

  
 這個(gè)例子中的username和password將會(huì)由properties元素中設(shè)置的值來(lái)替換。driver和url屬性將會(huì)從包含進(jìn)來(lái)的config.properties文件中的值來(lái)替換。
 
Settings
 
1.cacheEnabled
這個(gè)配置使全局的映射器啟用或禁用緩存。
有效值:true,false
默認(rèn)值:true
 
2.lazyLoadingEnabled
全局啟用或禁用延遲加載。當(dāng)禁用時(shí),所有關(guān)聯(lián)對(duì)象都會(huì)即時(shí)加載。
有效值:true,false
默認(rèn)值:true
 
3.aggressiveLazyLoading
當(dāng)啟用時(shí),有延遲加載屬性的對(duì)象在被調(diào)用時(shí)將會(huì)完全加載任意屬性。否則,
每種屬性將會(huì)按需要加載。
有效值:true,false
默認(rèn)值:true
 
4.mult ipleResultSetsEnabled
允許或不允許多種結(jié)果集從一個(gè)單獨(dú)的語(yǔ)句中返回(需要適合的驅(qū)動(dòng))
有效值:true,false
默認(rèn)值:true
 
5.useColumnLabel
使用列標(biāo)簽代替列名。不同的驅(qū)動(dòng)在這方便表現(xiàn)不同。參考驅(qū)動(dòng)文檔或充分測(cè)
試兩種方法來(lái)決定所使用的驅(qū)動(dòng)。
有效值:true,false
默認(rèn)值:true
 
6.useGeneratedKeys
允許JDBC支持生成的鍵。需要適合的驅(qū)動(dòng)。如果設(shè)置為true則這個(gè)設(shè)置強(qiáng)制
生成的鍵被使用,盡管一些驅(qū)動(dòng)拒絕兼容但仍然有效(比如 Derby) 
有效值:true,false
默認(rèn)值:false
 
7.autoMappingBehavior 
指定MyBatis如何自動(dòng)映射列到字段/屬性。PARTIAL只會(huì)自動(dòng)映射簡(jiǎn)單,沒(méi)有嵌套的結(jié)果。
FULL會(huì)自動(dòng)映射任意復(fù)雜的結(jié)果(嵌套的或其他情況)
有效值:NONE,PARTIAL,FULL
默認(rèn)值:PARTIAL
 
8.defaultExecutorType
配置默認(rèn)的執(zhí)行器。SIMPLE 執(zhí)行器沒(méi)有什么特別之處。REUSE執(zhí)行器重用預(yù)處理語(yǔ)句。
BATCH 執(zhí)行器重用語(yǔ)句和批量更新
有效值:SIMPLE,REUSE,BATCH
默認(rèn)值:SIMPLE
 
9.defaultStatementTimeout 
設(shè)置超時(shí)時(shí)間,它決定驅(qū)動(dòng)等待一個(gè)數(shù)據(jù)庫(kù)響應(yīng)的時(shí)間。
有效值:Any,positive,integer
默認(rèn)值:Not Set(null) 
 
一個(gè)設(shè)置信息元素的示例,完全的配置如下所示:

<settings>  
  <setting name="cacheEnabled" value="true"/>  
  <setting name="lazyLoadingEnabled" value="true"/>  
  <setting name="multipleResultSetsEnabled" value="true"/>  
  <setting name="useColumnLabel" value="true"/>  
  <setting name="useGeneratedKeys" value="false"/>  
  <setting name="enhancementEnabled" value="false"/>  
  <setting name="defaultExecutorType" value="SIMPLE"/>  
  <setting name="defaultStatementTimeout" value="25000"/>  
</settings> 

typeAliases
類型別名是為Java類型命名一個(gè)短的名字。它只和XML配置有關(guān),只用來(lái)減少類完全限定名的多余部分。例如:
 

<typeAliases>  
  <typeAlias alias="Author" type="domain.blog.Author"/>  
  <typeAlias alias="Blog" type="domain.blog.Blog"/>  
  <typeAlias alias="Comment" type="domain.blog.Comment"/>  
  <typeAlias alias="Post" type="domain.blog.Post"/>  
  <typeAlias alias="Section" type="domain.blog.Section"/>  
  <typeAlias alias="Tag" type="domain.blog.Tag"/>  
</typeAliases> 


使用這個(gè)配置,“Blog”可以任意用來(lái)替代“domain.blog.Blog”所使用的地方。  對(duì)于普通的 Java 類型,有許多內(nèi)建的類型別名。它們都是大小寫(xiě)不敏感的,由于重載的名字,要注意原生類型的特殊處理。

typeHandlers
無(wú)論是MyBatis在預(yù)處理語(yǔ)句中設(shè)置一個(gè)參數(shù),還是從結(jié)果集中取出一個(gè)值時(shí),類型處理器被用來(lái)將獲取的值以合適的方式轉(zhuǎn)換成Java類型。下面這個(gè)表格描述了默認(rèn)的類型處理器。

201661163147223.png (617×676)

你可以重寫(xiě)類型處理器或創(chuàng)建你自己的類型處理器來(lái)處理不支持的或非標(biāo)準(zhǔn)的類型。但這種情況相當(dāng)少??!

objectFactory
MyBatis每次創(chuàng)建結(jié)果對(duì)象新的實(shí)例時(shí),它使用一個(gè)ObjectFactory實(shí)例來(lái)完成。如果參數(shù)映射存在,默認(rèn)的ObjectFactory不比使用默認(rèn)構(gòu)造方法或帶參數(shù)的構(gòu)造方法實(shí)例化目標(biāo)類做的工作多。如果你想重寫(xiě)默認(rèn)的ObjectFactory,你可以創(chuàng)建你自己的。實(shí)例略。

plugins
MyBatis允許你在某一點(diǎn)攔截已映射語(yǔ)句執(zhí)行的調(diào)用。默認(rèn)情況下,MyBatis允許使用插件來(lái)攔截方法調(diào)用:
 
1.Executor
(update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
 
2.ParameterHandler 
(getParameterObject, setParameters)

3.ResultSetHandler 
(handleResultSets, handleOutputParameters)
 
4.StatementHandler 
(prepare, parameterize, batch, update, query)

environments
MyBatis可以配置多種環(huán)境。這會(huì)幫助你將SQL映射應(yīng)用于多種數(shù)據(jù)庫(kù)之中。
一個(gè)很重要的問(wèn)題要記得:你可以配置多種環(huán)境,但你只能為每個(gè)SqlSessionFactory實(shí)例選擇一個(gè)。所以,如果你想連接兩個(gè)數(shù)據(jù)庫(kù),你需要?jiǎng)?chuàng)建兩個(gè)SqlSessionFactory實(shí)例,每個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)一個(gè)。而如果是三個(gè)數(shù)據(jù)庫(kù),你就需要三個(gè)實(shí)例,以此類推。
環(huán)境元素定義了如何配置環(huán)境,如例:

<environments default="development">  
  <environment id="development">  
    <transactionManager type="JDBC">  
      <property name="..." value="..."/>  
    </transactionManager>  
    <dataSource type="POOLED">  
      <property name="driver" value="${driver}"/>  
      <property name="url" value="${url}"/>  
      <property name="username" value="${username}"/>  
      <property name="password" value="${password}"/>  
    </dataSource>  
  </environment>  
</environments>  

注意這里:
1.默認(rèn)的環(huán)境 ID(比如:default=”development”)。
2.每個(gè) environment 元素定義的環(huán)境 ID(比如:id=”development”)。  
3.事務(wù)管理器的配置(比如:type=”JDBC”)。
4.數(shù)據(jù)源的配置(比如:type=”P(pán)OOLED”)。

transactionManager
在MyBatis中有兩種事務(wù)管理器類型(也就是type="[JDBC|MANAGED]"。
1.JDBC---這個(gè)配置直接簡(jiǎn)單使用了JDBC的提交和回滾設(shè)置。它依賴于從數(shù)據(jù)源得到的連接來(lái)管理事務(wù)范圍。
2.MANAGED---這個(gè)配置幾乎沒(méi)做什么。它從來(lái)不提交或回滾一個(gè)連接。而它會(huì)讓容器來(lái)管理事務(wù)的整個(gè)生命周期(比如Spring或JEE應(yīng)用服務(wù)器的上下文)。默認(rèn)情況下它會(huì)關(guān)閉連接。然而一些容器并不希望這樣,因此如果你需要從連接中停止它,將closeConnection屬性設(shè)置為false。例如:

<transactionManager type="MANAGED">  
  <property name="closeConnection" value="false"/>  
</transactionManager>  

 這兩種事務(wù)管理器都不需要任何屬性。然而它們都是類型別名,要替換它們,你需要放置你自己的類的完全限定名或類型別名,它們引用了你對(duì)TransacFactory接口的實(shí)現(xiàn)類。

相關(guān)文章

  • Java中類的初始化和實(shí)例化區(qū)別詳解

    Java中類的初始化和實(shí)例化區(qū)別詳解

    這篇文章主要介紹了Java中類的初始化和實(shí)例化區(qū)別詳解,類的初始化<BR>是完成程序執(zhí)行前的準(zhǔn)備工作,類的實(shí)例化(實(shí)例化對(duì)象)是指創(chuàng)建一個(gè)對(duì)象的過(guò)程,需要的朋友可以參考下
    2023-08-08
  • JVM內(nèi)存參數(shù)配置詳解

    JVM內(nèi)存參數(shù)配置詳解

    本文主要介紹了JVM內(nèi)存參數(shù)配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • spring?boot集成smart-doc自動(dòng)生成接口文檔詳解

    spring?boot集成smart-doc自動(dòng)生成接口文檔詳解

    這篇文章主要介紹了spring?boot集成smart-doc自動(dòng)生成接口文檔詳解,smart-doc是一款同時(shí)支持java?restful?api和Apache?Dubbo?rpc接口文檔生成的工具,smart-doc顛覆了傳統(tǒng)類似swagger這種大量采用注解侵入來(lái)生成文檔的實(shí)現(xiàn)方法
    2022-09-09
  • jboss配置方法簡(jiǎn)明教程

    jboss配置方法簡(jiǎn)明教程

    這篇文章主要介紹了jboss配置方法,較為簡(jiǎn)明扼要的說(shuō)明了jboss服務(wù)器所需要的JDK環(huán)境安裝設(shè)置以及jboss的安裝與下載,并分析了配置與使用中的常見(jiàn)問(wèn)題,需要的朋友可以參考下
    2016-08-08
  • 淺談Java中生產(chǎn)者與消費(fèi)者問(wèn)題的演變

    淺談Java中生產(chǎn)者與消費(fèi)者問(wèn)題的演變

    這篇文章主要介紹了淺談Java中生產(chǎn)者與消費(fèi)者問(wèn)題的演變,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • JavaWeb實(shí)現(xiàn)顯示mysql數(shù)據(jù)庫(kù)數(shù)據(jù)

    JavaWeb實(shí)現(xiàn)顯示mysql數(shù)據(jù)庫(kù)數(shù)據(jù)

    MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的。本文將利用JavaWeb實(shí)現(xiàn)顯示mysql數(shù)據(jù)庫(kù)數(shù)據(jù)功能,需要的可以參考一下
    2022-03-03
  • Springboot使用Spring Data JPA實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作

    Springboot使用Spring Data JPA實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作

    Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 規(guī)范的基礎(chǔ)上開(kāi)發(fā)的一個(gè)框架,使用 Spring Data JPA 可以極大地簡(jiǎn)化JPA 的寫(xiě)法,本章我們將詳細(xì)介紹在Springboot中使用 Spring Data JPA 來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作
    2021-06-06
  • 原生Java操作mysql數(shù)據(jù)庫(kù)過(guò)程解析

    原生Java操作mysql數(shù)據(jù)庫(kù)過(guò)程解析

    這篇文章主要介紹了原生Java操作mysql數(shù)據(jù)庫(kù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java中的Native關(guān)鍵字講解

    Java中的Native關(guān)鍵字講解

    本文介紹了Java中的Native關(guān)鍵字,native關(guān)鍵字是架起本機(jī)語(yǔ)言和JAVA之間鴻溝的橋梁。如果我們的軟件與硬件的交互在使用預(yù)先存在的代碼時(shí)更有效,那么這可以作為一個(gè)關(guān)鍵環(huán)節(jié)。與從頭開(kāi)始設(shè)計(jì)新的應(yīng)用程序代碼相比,只要可以避免,它就可以使實(shí)現(xiàn)工作更少,下面來(lái)了解集體內(nèi)容
    2021-12-12
  • Java技巧分享之利用RxJava打造可觀測(cè)數(shù)據(jù)RxLiveData

    Java技巧分享之利用RxJava打造可觀測(cè)數(shù)據(jù)RxLiveData

    這篇文章主要來(lái)和大家分享一個(gè)Java技巧,那就是利用RxJava打造可觀測(cè)數(shù)據(jù)RxLiveData,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-06-06

最新評(píng)論