Mybatis sqlMapConfig.xml中的mappers標簽使用

sqlMapConfig.xml中的mappers標簽

mappers(映射配置)

1.1:通過resource加載單個映射文件

< !– 加載映射文件 –>
< mappers>
< !–通過resource方法一次加載一個映射文件 –>
< mapper resource=”sqlmap/User.xml”/>
< mapper resource=”mapper/UserMapper.xml”/>
< /mappers>

1.2:通過mapper接口加載單個映射文件

通過mapper接口加載單個映射配置文件

遵循一定的規范:需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄中;

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

< mapper class=”com.mybatis.mapper.UserMapper”/>

按照上邊的規范,將 mapper.java 和 mapper.xml 放在一個目錄 ,且同名。

1.3:批量加載mapper(推薦使用)

批量加載映射配置文件,mybatis自動掃描包下面的mapper接口進行加載

遵循一定的規范:需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄中;

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

< package name=”com.mybatis.mapper”/>

sqlmapconfig核心標簽說明以及配置

對於MyBatis最核心的全局配置文件是 sqlmapConfig.xml 文件,其中包含瞭數據庫的連接配置信息、Mapper 映射文件的加載路徑、全局參數、類型別名等。

配置項詳解

標簽名稱 標簽作用
configuration 包裹所有配置標簽,是整個配置文件的頂級標簽。
properties 屬性,該標簽可以引入外部配置的屬性,也可以自己配置。該配置標簽所在的同一個配置文件中的其他配置均可引用此配置中的屬性。
setting 全局配置參數,用來配置一些改變運行時行為的信息,例如是否使用緩存機制,是否使用延遲加載,是否使用錯誤處理機制等。並且可以設置最大並發請求數量、最大並發事務數量,以及是否啟用命令空間等。
typeAliases 類型別名,用來設置一些別名來代替 Java 的長類型聲明,如 java.lang.int 變為 int,減少配置編碼的冗餘。
typeHandlers 類型處理器,將 sql 中返回的數據庫類型轉換為相應 Java 類型的處理器配置。
objectFactory 對象工廠,實例化目標類的工廠類配置。
plugins 插件,可以通過插件修改 MyBatis 的核心行為,例如對語句執行的某一點進行攔截調用。
environments 環境集合屬性對象,數據庫環境信息的集合。在一個配置文件中,可以有多種數據庫環境集合,這樣使 MyBatis 將 sql 同時映射至多個數據庫。
environment 環境子屬性對象,數據庫環境配置的詳細配置。
transactionManager 事務管理,指定 MyBatis 的事務管理器。
dataSource 數據源,使其中的 type 指定數據源的連接類型,在標簽對中可以使用 property 屬性指定數據庫連接池的其他信息。
mappers 映射器,配置 sql 映射文件的位置,告知 MyBatis 去哪裡加載 sql 映射配置。

配置示例

<?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> 
    <!-- 1.properties屬性引入外部配置文件 -->
    <properties resource="org/mybatis/example/config.properties">
        <!-- property裡面的屬性全局均可使用 -->
        <property name="username" value="admin"/>
        <property name="password" value="admin"/>
    </properties>
    <!-- 2.全局配置參數 -->
    <settings>
       <!-- 設置是否啟用緩存 -->
       <setting name="cacheEnabled" value="true"/>
       <!-- 設置是否啟用懶加載 -->
        <setting name="lazyLoadingEnabled" value="true"/>   
    </settings>
    <!-- 3.別名設置 -->
    <typeAliases>
        <typeAlias alias="student" type="cn.com.mybatis.Student"/>
        <typeAlias alias="teacher" type="cn.com.mybatis.Teacher"/>
        <typeAlias alias="integer" type="java.lang.Integer"/>
    </typeAliases>
    <!-- 4.類型轉換器 -->
    <typeHandlers>
        <!-- 一個簡單類型轉換器 -->
        <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
    </typeHandlers>
    <!-- 5.對象工廠 -->
    <objectFactory type="org.mybatis.example.ExampleObjectFactory">
        <!-- 對象工廠註入的參數 -->
        <property name="someProperty" value="100"/>
    </objectFactory>
    <!-- 6.插件 -->
    <plugins>
        <plugin interceptor="org.mybatis.example.ExamplePlugin">
            <property name="someProperty" value="100"/>
        </plugin>
    </plugins>
    <!-- 7.environments數據庫環境配置 -->
    <!-- 和Spring整合後environments配置將被廢除 -->
    <environments default="development">  
        <environment id="development"> 
            <!-- 使用JDBC事務管理 -->
            <transactionManager type="JDBC" />  
            <!-- 數據庫連接池 -->
          <!-- 配置文件加載  這段代碼可以在spring-config.xml配置 -->
      <!-- <bean id="configProperties"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:db.properties</value>
            </list>
        </property>
      </bean>  -->
            <dataSource type="POOLED">  
                <property name="driver" value="${db.driver}"/>  
                <property name="url" value="${db.url}"/>  
                <property name="username" value="$db.{username}"/>  
                <property name="password" value="${db.password}"/>  
            </dataSource>  
        </environment>  
    </environments>
    <!-- 加載映射文件 也可以將映射文件統一配置,這樣就不用每個單獨配置-->
    <mappers>  
        <mapper resource="sqlmap/UserMapper.xml"/>
        <mapper resource="sqlmap/OtherMapper.xml"/>
    </mappers>  
</configuration>

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: