1. 程式人生 > >MyBatis【四】優化配置

MyBatis【四】優化配置

MyBatis配置檔案很重要,首先我們來看看MyBatis配置檔案中的內容和順序:

<properties>(屬性)

<setting>(全域性配置引數)

<typeAliases>(類型別名)

<typeHandlers>(型別處理器)

<objectFactory>(物件工廠)

<plugins>(外掛)

<environments>(環境集合屬性物件)
    <environment>(環境子屬性物件)
        <transactionManager>(事務管理)
        dataSource>(資料來源)

<
mappers>
(對映器)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

檔案目錄結構如下:
這裡寫圖片描述

1.< properties>屬性定義

可以把一些通用的屬性值配置在屬性檔案中,載入到mybatis執行環境內。例如建立db.properties檔案,然後在SqlMapperConfig.xml中進行配置。db.properties檔案內容如下:

這裡寫圖片描述

然後在SqlMapperConfig.xml中進行配置:

這裡寫圖片描述

然後在< environments>標籤中用${}符號做如下修改:

這裡寫圖片描述

注意:Mybatis將按照下面的順序來載入屬性

  • 1.在properties標籤之間定義的屬性首先被讀取。
  • 2.然後會讀取properties標籤內部resource或url的屬性,它會覆蓋已讀取的同名屬性。
  • 3.最後讀取parameterType(即insert標籤或是update標籤或是…)傳遞的屬性,它會覆蓋已讀取的同名屬性。

所以我們建議使用properties標籤時,不要在properties標籤之間定義屬性,只引用在.properties檔案中定義的屬性,並且.properties檔案中定義的key值要有一些特殊的規則。例如我上述定義key值時前面都加了jdbc.的字首。

2.< settings>全域性引數配置

mybatis執行時可以調整一些全域性引數(相當於軟體的執行引數)。根據使用需求進行引數配置。但是要注意:小心配置,配置引數會影響mybatis的執行。

ibatis的全域性配置引數中包括很多的效能引數(最大執行緒數、最大等待時間…),通過調整這些效能引數使ibatis達到高效能的執行,而mybatis沒有這些效能引數,由mybatis自動調節。

3.< typeAliases>屬性

可以將parameterType、resultType中指定的型別通過別名引用。MyBatis提供了很多的別名如下:
這裡寫圖片描述
這裡我們採用自定義的別名,在SqlMapperConfig.xml中進行如下配置:
這裡寫圖片描述
裡面包括定義單個別名和批量別名定義(即一次性定義一個包下所有.java檔案的別名)。

定義別名後這樣我們在parameterType和resultType中使用時就不用再繁瑣的指定類的全限定類名了,像下面這樣使用即可
這裡寫圖片描述

4.< typeHandlers>屬性

型別處理器將java型別和jdbc型別進行對映,mybatis提供了很多型別處理器,一般情況下夠用了。

5.< mapper>對映器屬性

之前我們在配置檔案中使用的< mapper>標籤內容為:< mapper resource=“mapper/UserMapper.xml”/>,接下來我要講的是另一種在配置檔案中對映mapper動態代理的方法。在配置檔案中這樣配置< mapper class=“mapper.UserMapper”/>,這樣的要求需要保證UserMapper.xml檔案和UserMapper.java在同一個包下且.xml檔案和.java檔名要同名。

同上方別名的配置,當包下出現多個Mapper.java和Mapper.xml時我們採用批量配置:< package name=“mapper”/>,程式碼如下:
這裡寫圖片描述

相關推薦

MyBatis優化配置

MyBatis配置檔案很重要,首先我們來看看MyBatis配置檔案中的內容和順序: <properties>(屬性) <setting>(全域性配置引數) <typeAliases>(類型別名) <typeHand

spring boot 2.1學習筆記屬性配置

spring boot 2.1系列文章目錄 文章目錄 常規屬性配置 @value 啟動引數 application.properties 型別安全的屬性配置(強烈推薦)

YARN and MapReduce的記憶體優化配置詳解

在Hadoop2.x中, YARN負責管理MapReduce中的資源(記憶體, CPU等)並且將其打包成Container。使之專注於其擅長的資料處理任務, 將無需考慮資源排程. 如下圖所示    YARN會管理叢集中所有機器的可用計算資源. 基於這些資源YARN會排程應用

TensorFlow原始碼系列優化演算法:constant folding和CSE

TensorFlow中使用的圖優化演算法有:constant folding 和CSE(common-subexpression elimination) 【演算法一】constant folding 該演算法,是將graph中常量的計算合併起來。例如: C = A+B,其中A和B都是con

Git GitLab配置優化及漢化

GitLab配置   1、修改GitLab繫結的域名     a、修改/etc/gitlab/gitlab.rb配置檔案,修改成自己的域名 1 external_url 'http://gitlab.example.com'     b、使配置生效       停止服務命令:gitlab-

Mybatis學習筆記01 配置搭建Mybatis

一、什麼是Mybatis mybatis是對jdbc的封裝 將sql語句放在對映檔案中(xml) 自動將輸入引數對映到sql語句的動態引數上自動將sql語句執行的結果對映成java物件。二、入門例項1、建立專案mybatis-01java專案maven2.匯入jar包![im

MongoDB配置文件說明

details 5.0 key 第一個 pen log data 端口 this 啟動MongoDB有2種方式,一是直接指定配置參數,二是指定配置文件。這裏先介紹配置文件,啟動方式如下: mongod --config /etc/mongodb.conf 配置如下:ve

010-shiro與spring web項目整合緩存Ehcache、Redis

principal eba view event ica inter element edi value 一、Ehcache shiro每次授權都會通過realm獲取權限信息,為了提高訪問速度需要添加緩存,第一次從realm中讀取權限數據,之後不再讀取,這裏Shiro和E

原創Centos配置turn服務器

cal wget -a hup def database var kill 多個 使用ssh工具,進行命令行,安裝下面的就是可以配置turn-server(coturn) 1.安裝centos必須的庫文件 yum install -y make gcc cc gc

MongoDB索引管理

過期 則無 面向 ssa 距離 comment fields 字段名 不包含 一、索引介紹 在mongodb中,索引用來支持高效查詢。如果沒有索引,mongodb必須在整個集合中掃描每個文檔來查找匹配的文檔。但是如果建立合適的索引,mongodb就可以通過索引來限制檢查的文

配置靜態IP的時候遇到 :bringing up interface eth0 : error unknown connection

問題 切換 png 靜態ip gin face oot 是否 nbsp 首先這是動態ip配置成功的結果 接下來切換到root用戶來配置靜態的 按照靜態ip的配置方法配置好文件後(具體過程這裏就不多加說明) 然後保存退出 當我們重啟網卡的時候問題來了(

SpringEUREKA配置

client location time test tween strong ear table use HDD_EUREKA_SERVER application.yml server:   port: 8101eureka:   instance:     h

Hive優化策略

nap set 進行 類型 命令 part ado http 計劃 Hive對於表的操作大部分都是轉換為MR作業的形式,為了提高OLAP[online analysis process 在線分析處理]的效率,Hive自身給出了很多的優化策略 1. explain[解釋執行計

移動端二三事:陀螺儀(重力感應器)實現手機位置、加速度感應以及常見應用。

效果 防止 size tro 通過 select 代碼 陀螺儀 prime 首先說明一下:陀螺儀感應需在真機環境下進行調試,PC端無效果。 1.獲取感應器 需在window上監聽devicemotion事件,再通過事件對象獲取accelerationIncludingG

mysqlmysql 配置

mark mysql gen engine fault my.cnf def class ner 安裝完mysql後, 要及得配置一下 /etc/mysql/my.cnf 配置字符編碼為utf8 [client] default-character-set = utf8

day40 python MySQL索引視圖觸發器存儲過程函數

cin 數量 存儲 自動 條件語句 ima doc 有序 lan 1.索引   索引相當於圖書的目錄,可以幫助用戶快速的找到需要的內容.   數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上

Python開發循環

內容 循環 pri python div 所有 clas bsp pre While循環 基本循環 while 條件:   執行內容 #循環體   ... #循環體   ... #循環體 # 若條件為真,執行循環體內容 #

Python學習 :正則表達式

pan 直觀 不包含 得到 regex 很好 可能 for pattern 一、正則表達式基礎 1.簡介   正則表達式並不是Python的一部分。正則表達式是用於處理字符串的強大工具,擁有自己獨特的語法以及一個獨立的處理引擎,效率上可能不如str自帶的方法,但功能十分強大

第一次個人作業(代碼編寫、調試、debug相關)

pre 運行速度 快速 hfile 配置 osi 命令 字符 最大值 代碼編寫過程中的重要知識點 VS調試命令行參數的輸入 在VS中調試,無法直接輸入命令行參數,但是可以通過一下方法配置命令行參數: 點擊菜單欄的 項目>>屬性 出現屬性對話框之後,選擇 配置屬

ASP.NET CORE系列基於Claim登錄授權

amp account 技術 time 其他 cookie first arp 好的 介紹 關於什麽是Claim? 可以看看其他大神的文章: http://www.cnblogs.com/jesse2013/p/aspnet-identity-claims-base