1. 程式人生 > >Mybatis(1、核心配置檔案、Properties、Settings、typeAliases...)

Mybatis(1、核心配置檔案、Properties、Settings、typeAliases...)

此章主要介紹sqlMapConfiguragion.xml的核心配置屬性。

mybatis、mappers、Environments、ObjectFactory、typeHandlers、Properties、Settings、typeAliases、Plugins

mybatis核心

MyBatis的xml配置檔案包含了設定和影響MyBatis行為的屬性,XML配置檔案的層次飢結構如下:

Configuration

    Properties屬性

    Settings設定

    typeAliases類型別名

    typeHandlers型別處理器

    ObjectFactory物件工廠

    Plugins外掛

    Environments環境

           Environment環境變數

                  transactionManager事物管理器

                  datasource資料來源

    mappers對映器

基本配置項:

<?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>
   …其他配置項
</configuration>

注意:

MyBatis 將按照下面的順序來載入屬性:

在  properties素體內定義的屬性首先被讀取。

然後會讀取properties 元素中resource或 url 載入的屬性,它會覆蓋已讀取的同名屬性。

最後讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性。

建議:

不要在properties元素體內新增任何屬性值,只將屬性值定義在properties檔案中。

在properties檔案中定義屬性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

Properties屬性

作用:這些是外部化的, 可替代的屬性, 這些屬性也可以配置在典型的 Java 屬性配置檔案中, 或者通過 properties 元素的子元素來傳遞

<properties resource="db.properties">
	<!--properties中還可以配置一些屬性名和屬性值 -->
	<property name="jdbc.driver" value=""/>
</properties>

Settings的設定

mybatis框架在執行時可以調整一些執行引數。

settings是極其重要的配置, 它們會修改 MyBatis 在執行時的行為方式。

設定選項 描述 可用值 預設值
cacheEnabled

全域性性地啟用或禁用所有在 mapper

置檔案
true|false true
lazyLoadingEnabled

全域性性地啟用或禁用延遲載入。當禁用

true|false true
aggressiveLazyLoading

當啟用後,一個有延遲載入屬性的物件的任何一個延遲屬性被載入時,該物件

的所有的屬性都會被載入。否則,所有屬性都是按需載入。
true|false true
multipleResultSetsEnabled 允許或禁止從單一的語句返回多個結果集(需要驅動程式相容)。 true|false true
useColumnLabel

使用列的標籤而不是列的名稱。在這方面,不同的驅動程式可能有不同的實

現。參考驅動程式的文件或者進行測試來確定您所使用的驅動程的行為

true|false true
useGeneratedKeys

允許JDBC自動生成主鍵。需要驅動程序相容。如果設定為 true則會強行自

動生成主鍵,然而有些則不會自動生
true|false False
autoMappingBehavior

指定MyBatis是否以及如何自動將列映射到欄位/屬性。

PARTIAL:只是自動對映簡單、非巢狀的結果集。

NONE,PARTIAL,

FULL
PARTIAL
defaultExecutorType

配置預設的執行器(executor)。SIMPLE:簡單的執行器。

REUSE:重用preparedstatements的執行器。

SIMPLEREUSE

BATCH
SIMPLE
defaultStatementTimeout 設定查詢資料庫超時時間。 任何正整數

NotSet(null)


注:一般情況下我們不需要特別指定,都使用的是預設值除非特殊需要自己指定狀態值。

具體配置如下

<configuration>
	<settings>
		<setting name="cacheEnabled" value="true"/>
	</settings>
</configuration>

typeAliases類型別名

定義類型別名的意義以及用途:

mapper.xml中,定義很多的statementstatement需要parameterType指定輸入引數的型別、需要resultType指定輸出結果的對映型別。例如查詢結果返回的是一個user物件,此處可以定義一個user bean,然後入參或者返回引數可以指定為alias的定義的別名user即可。

1、單個定義別名

<configuration>
	<typeAliases>
		<!-- 針對單個別名定義 type:型別的路徑 alias:別名 -->
		<typeAlias type="org.mybatis.po.User" alias="user"/>
	</typeAliases>
</configuration>

2、批量定義別名(常用)

<configuration>
	<typeAliases>
		<!-- 批量別名定義 指定包名,mybatis自動掃描包中的po類,自動定義別名,別名就是類名(首字母大寫或小寫都可以) -->
		<package name="org.mybatis.po" />
	</typeAliases>
</configuration>

typeHandlers型別處理器

說明:mybatis中通過typeHandlers完成jdbc型別和java型別的轉換。通常情況下,mybatis提供的型別處理器滿足日常需要,不需要自定義mybatis支援型別處理器


ObjectFactory物件工廠

   MyBatis每次建立結果物件的新例項時,它都會使用一個物件工廠(ObjectFactory)例項來完成。預設的物件工廠需要做的僅僅是例項化目標類,要麼通過預設構造方法,要麼在引數對映存在的時候通過引數構造方法來例項化。預設情況下,我們不需要配置,mybatis會呼叫預設實現的objectFactory。除非我們要自定義ObjectFactory的實現,那麼我們才需要去手動配置。

//   ExampleObjectFactory.java
public class ExampleObjectFactory extends DefaultObjectFactory { public Object create(Class type) {
return super.create(type);
}
public Object create(
 

Class type,
List<Class> constructorArgTypes, List<Object> constructorArgs) {
return super.create(type, constructorArgTypes, constructorArgs);
}
public void setProperties(Properties properties) { super.setProperties(properties);
}
}

//MapperConfig.xml

<objectFactory  type="org.mybatis.example.ExampleObjectFactory">
     <property name="someProperty" value="100"/>
</objectFactory>

ObjectFactory介面非常簡單,它包含兩個create的方法,一個是預設構造器,還有一個是含引數的構造器。最後的setProperties方法用來配置ObjectFactory。在初始化您自己的ObjectFactory例項之後,定義在objectFactory元素主體中的屬性會以引數的形式傳遞給setProperties方法。

Plugins外掛

plugins是一個可選配置。mybatis中的plugin其實就是個interceptor它可以攔截ExecutorParameterHandlerResultSetHandlerStatementHandler的部分方法,處理我們自己的邏輯。Executor就是真正執行sql語句的東西, ParameterHandler是處理我們傳入引數的,還記得前面講TypeHandler的時候提到過,mybatis預設幫我們實現了不少的typeHandler,當我們不顯示配置typeHandler的時候,mybatis會根據引數型別自動選擇合適的typeHandler執行,其實就是ParameterHandler在選擇。ResultSetHandler就是處理返回結果的。

Environments環境

    <environments default="development">  
             <environment id="development">  
                 <transactionManager type="JDBC" />  
                 <!-- 配置資料庫連線資訊 -->  
                 <dataSource type="POOLED">  
                     <!-- value屬性值引用db.properties配置檔案中配置的值 -->  
                     <property name="driver" value="${driver}" />  
                     <property name="url" value="${url}" />  
                     <property name="username" value="${name}" />  
                     <property name="password" value="${password}" />  
                 </dataSource>  
             </environment>  
         </environments>  

mapper對映器

第一種載入方式:通過resource載入單個對映檔案

xml配置

<configuration>
     <mappers>
        <mapper resource="sqlmap/User.xml" />
     </mappers>
</configuration>

第二種載入方式:通過mapper介面載入單個mapper

特別注意的是:通過mapper介面載入單個對映檔案

遵循一些規範:需要將mapper介面類名和mapper.xml對映檔名稱保持一致,且在一個目錄中

         上邊規範的前提是:使用的是mapper代理方法

配置檔案

<configuration>
	<mappers>
		<mapper class="org.mybatis.mapper.UserMapper"/>
	</mappers>
</configuration>

第三種載入方式:批量載入mapper(推薦使用)

  批量載入mapper指定mapper介面的包名,mybatis自動掃描包下邊所有mapper介面進行載入

遵循一些規範:需要將mapper介面類名和mapper.xml對映檔名稱保持一致,且在一個目錄中

上邊規範的前提是:使用的是mapper代理方法

<configuration>
	<mappers>
		<package name="cn.itcast.mybatis.mapper" />
	</mappers>
</configuration> 

mybatis預設支援別名

sql對映XML檔案

MyBatis真正強大之處就在這些對映語句,也就是它的魔力所在。對於它的強大功能,SQL射檔案的配置卻非常簡單

cache–在特定的名稱空間配置快取。

cache-ref引用另外一個名稱空間配置的快取.

resultMap強大來描據庫載對

parameterMap使!使用,這來可會被再進

sql句重用的SQL塊。

insertINSERT語句

updateUPDATE對映語句

deleteDELEETE語句

selectSELECT語句 接將會素進

相關推薦

Mybatis(1核心配置檔案PropertiesSettingstypeAliases...)

此章主要介紹sqlMapConfiguragion.xml的核心配置屬性。 mybatis、mappers、Environments、ObjectFactory、typeHandlers、Proper

MyBatis基本要素---核心配置檔案

今天就簡單的敘述下MyBatis的核心配置檔案吧~~      configuration  配置      properties  可以配置在java屬性配置檔案中      set

Mybatis學習筆記-核心配置檔案概述

properties Mybatis核心配置檔案包含了資料庫連線的核心配置和mybatis框架的基礎配置,是mybatis的核心描述檔案。 下面逐一介紹該配置檔案中的常用配置。 1.properties標籤 該標籤常用於定義mybatis環境的常量值

活動1(活動在配置檔案的註冊,Menu,活動的切換銷燬,活動間資料的傳遞)

活動是Android平臺上應用程式的基本構建塊之一。它們充當使用者與應用程式互動的入口點,也是使用者如何在應用程式中導航(如“後退”按鈕)或應用程式之間(與“最近”按鈕一樣)的核心。 一.在AndroidManifest中註冊活動 活動的註冊宣告放在<application>標籤

2配置檔案config.properties及瀏覽器啟動

配置檔案如下: 瀏覽器啟動選擇: 新建BrowserEngine.java檔案,程式碼如下: package framework;import java.io.FileInputStream;import java.io.IOException;import java.io.InputSt

myBatis 配置檔案 批量操作(增改)操作(資料庫 oracle 11g)

1、更新 <update id="batchUpdate" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="

Linkerd 2.1 釋出,路由級指標服務配置檔案UI 改進

   Linkerd 2.1 釋出了,Linkerd 是一個提供彈性雲端原生應用服務網格(Service Mesh)的開源專案,也是面向微服務的開源 RPC 代理,它的核心是一個透明代理。 此版本更新亮點包括路由級別指標、服務配置檔案和改進的儀表板 UI,還添加了一些

兩種配置Servlet的IP地址對映:1註解2配置檔案

1.建立專案 建立 servlet_test 動態web專案。 建立時點選 next, 勾選如下: 2.建立 test.java類 test.java 內容: 第一種:註解 – 設定IP地址對映

springcloud1spring+mybatis+mysql的yml配置檔案

server:   port: 8001   mybatis:   config-location: classpath:mybatis/mybatis.cfg.xml             # mybati

1redis配置檔案引數

Redis服務的配置檔案,可以根據需要進行配置 引數說明 daemonize:是否以後臺daemon方式執行 pidfile:pid檔案位置 port:監聽的埠號 timeout:請求超時時間 loglevel:log資訊級別 logfile:log檔案位置 database

pkg-config的安裝:1執行配置檔案進行系統配置 : ./configure時出錯

configure: error: Either a previously installed pkg-config or "glib-2.0 >= 2.16" could not be found.解決方法:./configure --with-internal-gl

使用wifi網絡卡筆記1----網絡卡選型開發環境搭建核心配置

  |   Location:                                                                                |   |     -> Device Drivers                              

Spring的核心配置檔案核心工作流程?

1.配置核心檔案 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://

Java中讀取配置檔案propertiesxml)

1. 利用java.util提供的工具類Properties       - 首先我這邊有個file.properties檔案       - 然後去讀取這個檔案

springhibernate整合核心配置檔案applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w

Spring 定時器配置 基於配置檔案 (使用 Spring3.2 quartz-1.6.5)

Spring 配置檔案  quartz-1.6.5.jar <!-- time start --> <bean id="quartzJob" class="com.anubi

1Spring原始碼分析1之讀取配置檔案

1、XMLBeanFcatory BeanFactory bf = new XmlBeanFactory(new ClassPa

nginxthinkphp3.2linux配置檔案配置

nginx.conf配置檔案:     server {         listen 9001;         server_name 127

1Maven配置多環境開發(devbetaprod)

我們在線上開發的時候不免要用到多個環境開發,一種的開發環境,一種是測試環境,還有就是生產環境,我們在開發的時候不可能直接用線上的環境進行修改,因為這樣會帶來很多無可預知的麻煩,所以我們要進行環境隔離~ <build> </build>裡面新增下面引數,設定Ma

Mybatis核心配置檔案SqlMapConfig.xml

配置內容:   SqlMapConfig.xml中配置的內容和順序如下: 1.properties(屬性) 2.settings(全域性配置引數) 3.typeAliases(類型別名) 4.typeHandlers(型別處理器) 5.objectFactory(物件工廠) 6.pl