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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java的MyBatis框架中關鍵的XML字段映射的配置參數詳解

Java的MyBatis框架中關鍵的XML字段映射的配置參數詳解

2020-05-08 12:00fhd001 JAVA教程

將XML文件的schema字段映射到數據庫的schema是我們操作數據庫的常用手段,這里我們就來整理一些Java的MyBatis框架中關鍵的XML字段映射的配置參數詳解,需要的朋友可以參考下

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

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

其中的屬性就可以在整個配置文件中使用,使用可替換的屬性來實現動態配置。比如:

?
1
2
3
4
5
6
<dataSource type="POOLED"
  <property name="driver" value="${driver}"/> 
  <property name="url" value="${url}"/> 
  <property name="username" value="${username}"/> 
  <property name="password" value="${password}"/> 
</dataSource>

  
 這個例子中的username和password將會由properties元素中設置的值來替換。driver和url屬性將會從包含進來的config.properties文件中的值來替換。
 
Settings

 
1.cacheEnabled
這個配置使全局的映射器啟用或禁用緩存。
有效值:true,false
默認值:true
 
2.lazyLoadingEnabled
全局啟用或禁用延遲加載。當禁用時,所有關聯對象都會即時加載。
有效值:true,false
默認值:true
 
3.aggressiveLazyLoading
當啟用時,有延遲加載屬性的對象在被調用時將會完全加載任意屬性。否則,
每種屬性將會按需要加載。
有效值:true,false
默認值:true
 
4.mult ipleResultSetsEnabled
允許或不允許多種結果集從一個單獨的語句中返回(需要適合的驅動)
有效值:true,false
默認值:true
 
5.useColumnLabel
使用列標簽代替列名。不同的驅動在這方便表現不同。參考驅動文檔或充分測
試兩種方法來決定所使用的驅動。
有效值:true,false
默認值:true
 
6.useGeneratedKeys
允許JDBC支持生成的鍵。需要適合的驅動。如果設置為true則這個設置強制
生成的鍵被使用,盡管一些驅動拒絕兼容但仍然有效(比如 Derby) 
有效值:true,false
默認值:false
 
7.autoMappingBehavior 
指定MyBatis如何自動映射列到字段/屬性。PARTIAL只會自動映射簡單,沒有嵌套的結果。
FULL會自動映射任意復雜的結果(嵌套的或其他情況)
有效值:NONE,PARTIAL,FULL
默認值:PARTIAL
 
8.defaultExecutorType
配置默認的執行器。SIMPLE 執行器沒有什么特別之處。REUSE執行器重用預處理語句。
BATCH 執行器重用語句和批量更新
有效值:SIMPLE,REUSE,BATCH
默認值:SIMPLE
 
9.defaultStatementTimeout 
設置超時時間,它決定驅動等待一個數據庫響應的時間。
有效值:Any,positive,integer
默認值:Not Set(null) 
 
一個設置信息元素的示例,完全的配置如下所示:

?
1
2
3
4
5
6
7
8
9
10
<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類型命名一個短的名字。它只和XML配置有關,只用來減少類完全限定名的多余部分。例如:
 

?
1
2
3
4
5
6
7
8
<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>


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

typeHandlers
無論是MyBatis在預處理語句中設置一個參數,還是從結果集中取出一個值時,類型處理器被用來將獲取的值以合適的方式轉換成Java類型。下面這個表格描述了默認的類型處理器。

Java的MyBatis框架中關鍵的XML字段映射的配置參數詳解

你可以重寫類型處理器或創建你自己的類型處理器來處理不支持的或非標準的類型。但這種情況相當少!!

objectFactory
MyBatis每次創建結果對象新的實例時,它使用一個ObjectFactory實例來完成。如果參數映射存在,默認的ObjectFactory不比使用默認構造方法或帶參數的構造方法實例化目標類做的工作多。如果你想重寫默認的ObjectFactory,你可以創建你自己的。實例略。

plugins
MyBatis允許你在某一點攔截已映射語句執行的調用。默認情況下,MyBatis允許使用插件來攔截方法調用:
 
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可以配置多種環境。這會幫助你將SQL映射應用于多種數據庫之中。
一個很重要的問題要記得:你可以配置多種環境,但你只能為每個SqlSessionFactory實例選擇一個。所以,如果你想連接兩個數據庫,你需要創建兩個SqlSessionFactory實例,每個數據庫對應一個。而如果是三個數據庫,你就需要三個實例,以此類推。
環境元素定義了如何配置環境,如例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<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.默認的環境 ID(比如:default=”development”)。
2.每個 environment 元素定義的環境 ID(比如:id=”development”)。  
3.事務管理器的配置(比如:type=”JDBC”)。
4.數據源的配置(比如:type=”POOLED”)。

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

?
1
2
3
<transactionManager type="MANAGED"
  <property name="closeConnection" value="false"/> 
</transactionManager

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 乌克兰bbw | 天美视频在线 | 好紧好爽再叫浪一点点潘金莲 | 欧美日韩精品一区二区三区高清视频 | 亚洲国产精品免费在线观看 | 色视频亚洲 | 好大好猛好深好爽视频 | 国产免费又粗又猛又爽视频国产 | 国产专区一va亚洲v天堂 | 四虎影视库永久在线地址 | 97视频免费人人观看人人 | 日本不卡免费新一二三区 | bnb99八度免费影院 | 国产精品亚洲片在线观看麻豆 | www91在线观看 | www.九九| 午夜久久久久久网站 | 精品视频一区二区三区 | 香蕉久久ac一区二区三区 | 国产麻豆流白浆在线观看 | 国产欧美一区二区精品久久久 | 欧美一级激情 | 公交车强校花系列小说 | 欧洲破处 | 天天狠天天透 | 久久噜国产精品拍拍拍拍 | 双性总裁(h) | 青草视频网站在线观看 | 亚洲精品免费在线 | 国产香蕉国产精品偷在线观看 | 国产高清在线播放免费观看 | 操久| 亚洲视频在线看 | 国产在线精品99一卡2卡 | 欧美高清milf在线播放 | 特黄特色大片免费影院 | 国内亚州视频在线观看 | 羞羞视频免费观看网站 | 亚洲国产99999在线精品一区 | 国产亚洲精品一区二区在线播放 | 国产播放器一区 |