SqlMapConfig.xml配置文件---Mybatis学习笔记(七)
SqlMapConfig.xml文件的配置內容:
SqlMapConfig.xml中配置的內容和順序如下:
properties(屬性)
settings(全局配置參數)
typeAliases(類型別名)
typeHandlers(類型處理器)
objectFactory(對象工廠)
plugins(插件)
environments(環境集合屬性對象)
environment(環境子屬性對象)
transactionManager(事務管理)
dataSource(數據源)
mappers(映射器)
properties屬性:
需求:
將數據庫連接參數單獨配置在db.properties中,只需要在sqlMapConfig.xml中加載db.properties的屬性值。在SqlMapConfig.xml中就不需要對數據庫連接參數硬編碼。
將數據庫連接參數只配置在db.properties中,原因:方便對參數進行統一管理,其它xml可以引用該db.properties文件。
在classpath下定義db.properties文件:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=123SqlMapConfig.xml引用如下:
<properties resource="db.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>注意: MyBatis 將按照下面的順序來加載屬性:
因此,通過parameterType傳遞的屬性具有最高優先級,resource或 url 加載的屬性次之,最低優先級的是 properties 元素體內定義的屬性。
建議:
settings(全局參數配置):
mybatis框架在運行時可以通過settings參數調整一些運行參數。
eg:開啟二級緩存、開啟延遲加載…
typeAliases(類型別名):
需求:
在mapper.xml中,定義很多的statement,statement需要parameterType指定輸入參數的類型,需要resultType指定輸出結果的映射類型。如果在指定類型時輸入類型全路徑,不方便進行開發,可以針對parameterType和resultType指定的類型定義一些別名,在mapper.xml中通過別名定義就會十分方便。
mybatis默認支持的別名:
eg:UserMapper.xml文件中的
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.huihui.pojo.User">select * from user where id=#{id} </select>等同于
<select id="findUserById" parameterType="int" resultType="com.huihui.pojo.User">select * from user where id=#{id} </select>上邊的int就是java.lang.Integer的別名。
自定義別名:
在sqlMapConfig.xml中的配置:
上面針對單個別名定義中的:
alias是要定義的別名 type是原始類型的全路徑上面針對批量別名定義:
name就是存放pojo類的包名。定義好包名之后,加載的時候會自動掃描該包下的所有類,并把類名當作是別名。并且別名的首字母大小寫都可以。
typeHandlers(類型處理器)
類型處理器用于java類型和jdbc類型映射(也就是完成jdbc類型和java類型的轉換)。
mybatis自帶的類型處理器基本上滿足日常需求,不需要單獨定義。
mybatis支持類型處理器:
eg:
<select id="findUserById" parameterType="java.lang.Integer" resultType="user">select * from user where id = #{id} </select>上面 parameterType="java.lang.Integer" 的類型是java類型的,但是#{id} 卻是jdbc類型的。這里就是通過mybatis類型處理器自動完成的。
mappers(映射器)
Mapper配置的幾種方法:
1.<mapper resource=" " />:使用相對于類路徑的資源。
eg:
2.<mapper url=" " />:使用完全限定路徑
eg:
3.<mapper class=" " />:使用mapper接口類路徑
注意:
eg:
<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>4.<package name=""/>:注冊指定包下的所有mapper接口
注意:
eg:
<package name="cn.itcast.mybatis.mapper"/>總結
以上是生活随笔為你收集整理的SqlMapConfig.xml配置文件---Mybatis学习笔记(七)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原始dao和Mapper动态代理的开放方
- 下一篇: Mapper.xml映射文件---Myb