1. 程式人生 > 其它 >MyBatis的標籤

MyBatis的標籤

技術標籤:框架mybatis

<properties>標籤

可以用來獲取外部properties配置檔案的資訊

driver:com.mysql.jdbc.Driver
url:jdbc:mysql:///JDBC
username:root
password:root
<!--    載入配置檔案dbconfig.properties-->
    <properties resource="dbconfig.properties"> </properties>
    
    <environments default
="development"> <environment id="development"> <transactionManager type="JDBC"/> <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>

<settings>標籤

包含很多重要的設定項,setting用來設定每一個設定項,name用來設定項名,value用來設定想取值。

<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="autoMappingBehavior" value="PARTIAL"/>
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/>
  <setting name="defaultFetchSize" value="100"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

<typeAliases>標籤

別名處理器,可以為java型別起別名

    <typeAliases>
<!-- 為某個類起別名-->
        <typeAlias type="Util.User" alias="user"></typeAlias>
<!-- 給某個包下的所有類批量起別名(預設別名 類名的小寫)-->
        <package name="Util"/>

    </typeAliases>

注意:在進行批量取別名時可能出現一個問題,就是該包下的子包也存在一個類名和該包下的類名相同,此時就會出現別名衝突的錯誤,這時我們可以用註解對衝突的類名進行重新命名。
在這裡插入圖片描述

使用註解進行重新命名

package Util.Test;

import org.apache.ibatis.type.Alias;

@Alias("use")
public class user {
}

<environments>標籤

配置環境,mybatis可以配置多種環境,default可以指定使用某種環境。environment用來配置一個具體的環境,id 代表當前環境的唯一標識。transactionManager事務管理器,裡面的type選擇事務管理器的型別一般有兩種分別為JDBC和MANAGED;dataSource資料來源,裡面的type有三個選項分別是UNPOOLED,不使用連線池,POOLED,使用連線池;JNDI。

<environments default="test">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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>

        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="UNPOOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

<databaseIDProvider>標籤

支援多種資料庫廠商,在MyBatisXML配置檔案裡面配置不同資料庫的別名,然後再Mapper檔案中配置databaseID的屬性使其能夠在不同資料庫進行查詢。

<databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle"/>
</databaseIdProvider>

<Mappers>標籤

將sql對映註冊到全域性配置中,每個mapper標籤就是註冊一個maooer對映。resource引用類路徑下的檔案;url引用網路路徑下的檔案。class屬性註冊介面,必須有sql對映檔案且對映檔名必須和介面同名且在同一路徑下,也可以基於註解程序查詢。 package將包內的對映器介面實現全部註冊為對映器。

<!-- 使用相對於類路徑的資源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定資源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用對映器介面實現類的完全限定類名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 將包內的對映器介面實現全部註冊為對映器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

注意:標籤的編輯是有順序的,其順序為(properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)依次遞減。