日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis全局配置文件介绍

發布時間:2024/9/30 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis全局配置文件介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、properties

properties標簽可以用于引入外部的配置文件,也可以用于定義全局變量。
比如我們在配置數據源的時候習慣把相關的信息單獨的放在一個配置文件中,方便修改。

數據庫配置信息dbconfig.properties

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis-study jdbc.username=root jdbc.password=1234

在全局配置文件mybatis-config.xml中通過使用properties標簽引用dbconfig.properties

<configuration><!-- properties 中提供了兩個屬性,分別是resource 和url resource用于引入類路徑下的資源url 用于引入磁盤或者網絡路徑中的資源--><properties resource="dbconfig.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC"/><!-- 配置數據源 通過${} 的方式獲得外部變量的值 --><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments> </configuration>

二、settings

settings標簽用于改變 MyBatis 的運行時行為。
部分配置實例如下:

<settings><!-- 配置影響的所有映射器中配置的緩存的全局開關,默認是true --><setting name="cacheEnabled" value="true"/><!-- 懶加載的全局開關,默認是false --><setting name="lazyLoadingEnabled" value="true"/><!-- 是否開啟駝峰命名規則映射,默認是false比如數據庫某個字段為user_name,設置為true,可以映射到javabean 中的userName字段--><setting name="mapUnderscoreToCamelCase" value="true"/></settings>

三、typeAliases

typeAliases可以為javabean 起別名。
比如我們在SQL 映射文件中寫SQL 語句時,返回的結果類型可能是某個javabean 類型,這時候為了方便,我們就可以為這個javabean 設置一個簡單的別名。注意配置的順序,typeAliases要配置在settings后面。

<typeAliases><!-- typeAlias 為某個javabean 起別名,type 為對應的全路徑名,alias 為設置到額別名,不設置alias 默認是類名小寫 --><!--<typeAlias type="com.jas.mybatis.bean.Employee" alias="employee"/>--><!-- 批量起別名,那么為javabean 所在的包,默認的別名是類名小寫 --><package name="com.jas.mybatis.bean"/></typeAliases>

SQL 映射文件

<!-- 設置了別名以后,resultType 返回值類型就可以使用別名了 --><select id="getEmpById" resultType="Employee">select * from t_employee where id = #{id}</select>

四、typeHandlers

typeHandlers類型處理器,不管MyBatis 在預處理語句(PreparedStatement)中設置一個參數,還是從結果集中取出一個值時, 都會用類型處理器將獲取的值以合適的方式轉換成 Java 類型。

比如數據庫中的VARCHAR類型,會被轉換成Java 中的java.lang.String,其類型處理器是StringTypeHandler。這個標簽通常不必設置,MyBatis 對大部分常用的數據類型都進行了轉換。

五、objectFactory

MyBatis 每次創建結果對象的新實例時,都會使用一個對象工廠(ObjectFactory)實例來完成。 默認的對象工廠需要做的僅僅是實例化目標類,要么通過默認構造方法,要么在參數映射存在的時候通過參數構造方法來實例化。這個標簽一般不需要作其他配置。

六、plugins

MyBatis 允許你對已經映射的SQL 語句在執行過程中可以對某一點進行攔截調用。默認情況下,MyBatis 允許使用插件來攔截的方法調用主要有四個:

Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandler (getParameterObject, setParameters) ResultSetHandler (handleResultSets, handleOutputParameters) StatementHandler (prepare, parameterize, batch, update, query)

這些方法的使用會在后續的報文中會作具體的介紹,有興趣的話可以關注后續的博文。

七、environments

environments允許配置成多種運行環境,比如開發、測試和生產環境,可以在不同的生產環境中分別配置對應的數據庫。這種機制有助于將 SQL 映射應用于多種數據庫之中。

比如可以在environments中設置兩個環境,分別是test 和development。在不同的環境下,可以通過default來指定。

<environments default="development"><!-- 生產環境 --><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment><!-- 測試環境 --><environment id="test"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- ...省略一些信息... --></dataSource></environment></environments>

environments下可以設置多個environment,每個environment都必須要有transactionManager和dataSource,否則會報錯。

八、databaseIdProvider

設置databaseIdProvider可以讓MyBatis 支持不同廠商的數據庫,對于多數據庫廠商的支持基于SQL 映射文件中的databaseId字段。
比如設置MyBatis 支持三種數據庫廠商,需要做如下配置:

<databaseIdProvider type="DB_VENDOR"><!-- name 表示數據庫廠商的標識,value 表示數據庫廠商標識的別名 --><property name="SQL Server" value="sqlserver"/><property name="MySql" value="mysql"/> <property name="Oracle" value="oracle" /> </databaseIdProvider>

在SQL 映射文件中編寫SQL 的時候可以通過databaseId字段設置使用的是哪個廠商的數據庫。當然如果你要在不同數據庫廠商之間進行切換,都需要配置相對應的數據源。

<mapper namespace="com.jas.mybatis.mapper.EmployeeMapper"><!-- databaseId="mysql" 表示使用的是MySql ,"mysql" 是上面設置的MySql 的別名 --><select id="getEmpById" resultType="Employee" databaseId="mysql">select * from t_employee where id = #{id}</select> </mapper>

九、mappers

mappers用于在全局配置文件中注冊SQL 映射文件。mapper標簽中提供了三個屬性resource、url和class。
resource加載類路徑下的SQL映射文件,
url 加載磁盤中或者網絡中的映射文件,
class用于注冊接口。
配置規則如下:

<!-- resource="EmployeeMapper.xml" 表示映射文件在類路徑下 --><mappers><mapper resource="EmployeeMapper.xml"/></mappers>

十、總結

這些標簽的使用順序是一定的,打亂定義的順序會報錯。

properties -> settings -> typeAliases -> typeHandlers -> objectFactory -> objectWrapperFactory -> reflectorFactory -> plugins -> environments -> databaseIdProvider -> mappers

這篇博文主要介紹了MyBatis 全局配置文件中一些標簽,關于這些標簽,只是將其中一些相對重要的用法作了介紹,并沒有把標簽的全部用法列出來。如果你想更全面了解這些標簽的用法,官方文檔是一個不可錯過的選擇。

官方文檔鏈接:http://www.mybatis.org/mybatis-3/zh/configuration.html

總結

以上是生活随笔為你收集整理的MyBatis全局配置文件介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。