mybatis全局配置文件mybatis-config.xml

1.properties屬性

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

  • 在properties元素體內(nèi)定義的屬性首先被讀取·。
  • 然后會讀取properties元素中國source或url加載的屬性,它會覆蓋已讀取的同名屬性。
  • 最后讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性
    建議
    不要在properties元素體內(nèi)添加任何屬性值,只將屬性值定義在properties文件中。
    在properties文件中定義屬性名要有一定的特殊性,如jdbc.username

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sams?serverTimezone=UTC 
jdbc.username=root
jdbc.password=root

mybatis-config.xml

<?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>
    <properties resource="db.properties"></properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>
    <!--加載映射文件-->
    <mappers>
        <mapper resource="mapper/adminMap.xml"></mapper>
        <mapper resource="mapper/mapper.xml"></mapper>
    </mappers>
</configuration>
2.settings全局參數(shù)配置

mabatis框架運(yùn)行時可以調(diào)整一些運(yùn)行參數(shù)

[引用]
<!-- settings是 MyBatis 中極為重要的調(diào)整設(shè)置,它們會改變 MyBatis 的運(yùn)行時行為。 -->
    <settings>
        <!-- 該配置影響的所有映射器中配置的緩存的全局開關(guān)。默認(rèn)值true -->
      <setting name="cacheEnabled" value="true"/>
      <!--延遲加載的全局開關(guān)。當(dāng)開啟時,所有關(guān)聯(lián)對象都會延遲加載。 特定關(guān)聯(lián)關(guān)系中可通過設(shè)置fetchType屬性來覆蓋該項的開關(guān)狀態(tài)。默認(rèn)值false  -->
      <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 是否允許單一語句返回多結(jié)果集(需要兼容驅(qū)動)。 默認(rèn)值true -->
      <setting name="multipleResultSetsEnabled" value="true"/>
      <!-- 使用列標(biāo)簽代替列名。不同的驅(qū)動在這方面會有不同的表現(xiàn), 具體可參考相關(guān)驅(qū)動文檔或通過測試這兩種不同的模式來觀察所用驅(qū)動的結(jié)果。默認(rèn)值true -->
      <setting name="useColumnLabel" value="true"/>
      <!-- 允許 JDBC 支持自動生成主鍵,需要驅(qū)動兼容。 如果設(shè)置為 true 則這個設(shè)置強(qiáng)制使用自動生成主鍵,盡管一些驅(qū)動不能兼容但仍可正常工作(比如 Derby)。 默認(rèn)值false  -->
      <setting name="useGeneratedKeys" value="false"/>
     <!--  指定 MyBatis 應(yīng)如何自動映射列到字段或?qū)傩浴?NONE 表示取消自動映射;PARTIAL 只會自動映射沒有定義嵌套結(jié)果集映射的結(jié)果集。 FULL 會自動映射任意復(fù)雜的結(jié)果集(無論是否嵌套)。 --> 
     <!-- 默認(rèn)值PARTIAL -->
      <setting name="autoMappingBehavior" value="PARTIAL"/>
      
      <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
     <!--  配置默認(rèn)的執(zhí)行器。SIMPLE 就是普通的執(zhí)行器;REUSE 執(zhí)行器會重用預(yù)處理語句(prepared statements); BATCH 執(zhí)行器將重用語句并執(zhí)行批量更新。默認(rèn)SIMPLE  -->
      <setting name="defaultExecutorType" value="SIMPLE"/>
      <!-- 設(shè)置超時時間,它決定驅(qū)動等待數(shù)據(jù)庫響應(yīng)的秒數(shù)。 -->
      <setting name="defaultStatementTimeout" value="25"/>
      
        <setting name="defaultFetchSize" value="100"/>
      <!-- 允許在嵌套語句中使用分頁(RowBounds)默認(rèn)值False -->
      <setting name="safeRowBoundsEnabled" value="false"/>
      <!-- 是否開啟自動駝峰命名規(guī)則(camel case)映射,即從經(jīng)典數(shù)據(jù)庫列名 A_COLUMN 到經(jīng)典 Java 屬性名 aColumn 的類似映射。  默認(rèn)false -->
      <setting name="mapUnderscoreToCamelCase" value="false"/>
      <!-- MyBatis 利用本地緩存機(jī)制(Local Cache)防止循環(huán)引用(circular references)和加速重復(fù)嵌套查詢。
             默認(rèn)值為 SESSION,這種情況下會緩存一個會話中執(zhí)行的所有查詢。
            若設(shè)置值為 STATEMENT,本地會話僅用在語句執(zhí)行上,對相同 SqlSession 的不同調(diào)用將不會共享數(shù)據(jù)。  -->
      <setting name="localCacheScope" value="SESSION"/>
      <!-- 當(dāng)沒有為參數(shù)提供特定的 JDBC 類型時,為空值指定 JDBC 類型。 某些驅(qū)動需要指定列的 JDBC 類型,多數(shù)情況直接用一般類型即可,比如 NULL、VARCHAR 或 OTHER。  -->
      <setting name="jdbcTypeForNull" value="OTHER"/>
    <!--   指定哪個對象的方法觸發(fā)一次延遲加載。  -->
      <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
    </settings>
3.typeAliases(別名)重點

單個別名定義
指定報名,mybatis自動掃描包中的類,自動定義別名,別名就是類名(首字母大小寫不限制

<typeAliases >
    <typeAlias type="cn.huan.mybatis.AdminBean" alias="AdminBean"></typeAlias>
</typeAliases>

批量別名定義

<typeAliases >
        <package name="cn.huan"></package>
    </typeAliases>

引用:

 <select id="findUserById" parameterType="int" resultType="AdminBean">
        SELECT * FROM admin WHERE a_id =#{a_id}
 </select>
4.typeHandlers(類型處理器)

mybatis中通過typeHandkers完成jdbc類型和java類型的轉(zhuǎn)換
通常情況下,mybatis提供的類型處理器滿足日常需要。不需要自定義

5.mappers映射配置

通過resource加載單個映射文件

<mappers>
        <mapper resource="mapper/adminMap.xml"></mapper>
        <mapper resource="mapper/mapper.xml"></mapper>
</mappers>

通過url加載

<mappers>
        <mapper url="E:\IDEA\Spring_maven\src\main\resources\mapper\adminMap.xml"></mapper>
    
</mappers>

通過mapper接口加載(單個加載)
(需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄)

<mappers>
        <mapper class="cn.mapper.AdminMapper"></mapper>
    </mappers>

通過mapper接口加載(批量加載)
(需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄)

    <!--加載映射文件-->
    <mappers>
        <package name="cn.huan"></package>
    </mappers>

上一篇:mybatis開發(fā)dao的方法(原始dao開發(fā)+mapper代理開發(fā))

文集:mybatis框架學(xué)習(xí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,219評論 0 4
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡介 1.1 原始的JDBC操作: Java 通過 Jav...
    小Q逛逛閱讀 5,392評論 0 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • MyBatis配置xml層次結(jié)構(gòu),而且必須注意其順序。 MyBatis官網(wǎng)中文XML映射配置文件 1.proper...
    落葉飛逝的戀閱讀 2,433評論 0 4
  • 五一假期第一天突然想學(xué)點新東西,于是把Python重新?lián)炱饋怼0凑誄rossin的編程教室中的《Python入門教...
    葉_XIN閱讀 1,704評論 0 0

友情鏈接更多精彩內(nèi)容