2、mybatis的全局配置文件(mybatis筆記)

(工程mybatis03

一、Mybatis的全局配置文件,配置內(nèi)容如下:

  • properties(屬性)
  • settings(全局配置參數(shù))
  • typeAliases(類型別名)
  • typeHandlers(類型處理器)
  • objectFactory(對象工廠)
  • plugins(插件)
  • environments(環(huán)境集合屬性對象)
  • environment(環(huán)境子屬性對象,environments的自標簽)
  • transactionManager(事務管理,environment的自標簽)
  • dataSource(數(shù)據(jù)源,environment的自標簽)
  • mappers(映射器)

二、properties(屬性)

  • 需求:將數(shù)據(jù)庫的連接參數(shù)單獨配置在db.properties中,只需要在SqlMapperConfig.xml中加載該db.properties的屬性值。這樣就不需要在硬編碼了。原因是方便對參數(shù)進行統(tǒng)一管理,其他的xml可以引用該配置文件。
  • 建議:不要在properties標簽體內(nèi)添加任何屬性值,只將屬性值定義在db.properties中,在db.properties中定義屬性名要有一定的特殊性。比如jdbc.username。

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3305/mybatis
jdbc.username=root
jdbc.password=walp1314

SqlMapConfig.xml文件中配置此文件

    <!-- 加載屬性文件 -->
    <properties resource="db.properties">
        <!-- 在這里還可以配置一些屬性名和值,這里的值是首先被讀取的,然后再讀取文件中的屬性,同名的會覆蓋
        最后才讀取parameterType傳遞的屬性,也會覆蓋掉同名的,這里要注意!??! -->
    </properties>

于是數(shù)據(jù)庫的相關配置就可以這樣寫:

<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

三、setttings全局參數(shù)配置

Mybatis框架在運行時可以調(diào)整一些運行參數(shù),比如開啟二級緩存、延遲加載。參考mybatis-settings.xlsx文件。在<properties>標簽后面配置。

四、typeAliases別名(重點)

需求:在mapper.xml中定義了很多Statement,Statement需要parameterType指定輸入?yún)?shù)的類型、需要resultType指定輸出結果的映射類型。
如果在指定類型時輸入類型的全路徑,不方便開發(fā),可以定義一些針對上面兩個參數(shù)定義一些別名,比如```parameterType="java.lang.Integer"``,對于這些類型mybatis都為我們定義好了。
而針對pojo類型的別名需要我們自己定義

    <!-- typeAliases-->
    <typeAliases>
        <!-- 針對單個別名定義 -->
        <typeAlias type="cn.itcast.pojo.User" alias="User"/>
    </typeAliases>

說明:之后我們在使用pojo的時候就可以直接寫其別名。如

<select id="findUserByName" parameterType="java.lang.String" resultType="User">

但是這是單條記錄的情況,對于多條記錄的情況為(推薦使用):

    <!-- typeAliases-->
    <typeAliases>
        <package name="cn.itcast.pojo"/>
    </typeAliases>

說明:批量別名定義 ,需要指定一個包名,mybatis自動掃描pojo類,自動定義別名,別名就是類名(首字母大小或小寫都行)。

五、typeHandlers(類型處理器)

在mybatis中通過typeHandlers完成jdbc類型和java類型的轉(zhuǎn)換。一般不需要自定義,mybatis都幫我們做好了。

六、mappers映射器

單個映射

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

還可以使用這種方式:

<mapper url="http://..."/>

當然還可以通過接口來進行映射,通過mapper接口來加載,要指定的不是映射文件了,而是指定的是class,需要遵循一定的規(guī)范:需要將mapper接口的類型和mapper.xml名稱保持一致,且在一個目錄,前提是使用的是mapper代理的方法。

<mapper class="cn.itcast.mapper.UserMapper"/>

但是這是針對映射文件很少的方式,如果映射文件很多則比較麻煩,下面看批量映射(推薦使用):

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

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

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,220評論 0 4
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡介 1.1 原始的JDBC操作: Java 通過 Jav...
    小Q逛逛閱讀 5,392評論 0 16
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 文/柴da瑞 1 前不久,和朋友在約定好的地方碰面,還沒坐穩(wěn),對面的朋友就傾身過來,說:別動,這兒有一根白頭發(fā)。 ...
    胡李胡荼閱讀 293評論 0 4
  • 使用jquery mobil 語法 描述 $(this) 當前 HTML 元素$("p") 所有 元素$(...
    ZGKzm閱讀 287評論 0 0

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