MyBatis學習總結(三)——優化MyBatis配置文件中的配置
1、鏈接數據庫的配置單獨放在一個properties文件中
以前,咱們是直接將數據庫的鏈接配置信息寫在了MyBatis的conf.xml文件中,以下:html
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 3 <configuration> 4 <environments default="development"> 5 <environment id="development"> 6 <transactionManager type="JDBC" /> 7 <!-- 配置數據庫鏈接信息 --> 8 <dataSource type="POOLED"> 9 <property name="driver" value="com.mysql.jdbc.Driver" />10 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />11 <property name="username" value="root" />12 <property name="password" value="XDP" />13 </dataSource>14 </environment>15 </environments>16 17 </configuration>
其實咱們徹底能夠將數據庫的鏈接配置信息寫在一個properties文件中,而後在conf.xml文件中引用properties文件,具體作法以下:mysql
一、在src目錄下新建一個db.properties文件,以下圖所示:sql
在db.properties文件編寫鏈接數據庫須要使用到的數據庫驅動,鏈接URL地址,用戶名,密碼,以下:數據庫
1 driver=com.mysql.jdbc.Driver2 url=jdbc:mysql://localhost:3306/mybatis3 name=root4 password=XDP
二、在MyBatis的conf.xml文件中引用db.properties文件,以下:mybatis
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 3 <configuration> 4 5 <!-- 引用db.properties配置文件 --> 6 <properties resource="db.properties"/> 7 <!-- 8 development : 開發模式 9 work : 工做模式10 -->11 <environments default="development">12 <environment id="development">13 <transactionManager type="JDBC" />14 <!-- 配置數據庫鏈接信息 -->15 <dataSource type="POOLED">16 <!-- value屬性值引用db.properties配置文件中配置的值 -->17 <property name="driver" value="${driver}" />18 <property name="url" value="${url}" />19 <property name="username" value="${name}" />20 <property name="password" value="${password}" />21 </dataSource>22 </environment>23 </environments>24 25 </configuration>
2、爲實體類定義別名,簡化sql映射xml文件中的引用
以前,咱們在sql映射xml文件中的引用實體類時,須要寫上實體類的全類名(包名+類名),以下:dom
<!-- 建立用戶(Create) --><insert id="addUser" parameterType="me.gacl.domain.User"> insert into users(name,age) values(#{name},#{age})</insert>
parameterType="me.gacl.domain.User"這裏寫的實體類User的全類名me.gacl.domain.User,每次都寫這麼一長串內容挺麻煩的,而咱們但願可以簡寫成下面的形式ide
<insert id="addUser2" parameterType="_User"> insert into users(name,age) values(#{name},#{age})</insert>
parameterType="_User"這樣寫就簡單多了,爲了達到這種效果,咱們須要在conf.xml文件中爲實體類="me.gacl.domain.User"定義一個別名爲"_User",具體作法以下:
在conf.xml文件中<configuration></configuration>標籤中添加以下配置:
學習
<typeAliases> <typeAlias type="me.gacl.domain.User" alias="_User"/></typeAliases>
這樣就能夠爲me.gacl.domain.User類定義了一個別名爲_User,之後_User就表明了me.gacl.domain.User類,這樣sql映射xml文件中的凡是須要引用me.gacl.domain.User類的地方均可以使用_User來代替,這就達到了一個簡化實體類引用的目的。優化
除了可使用<typeAlias type="me.gacl.domain.User" alias="_User"/>這種方式單獨爲某一個實體類設置別名以外,咱們還可使用以下的方式批量爲某個包下的全部實體類設置別名,以下:url
<!-- 配置實體類的別名,配置實體類別名的目的是爲了在引用實體類時可使用實體類的別名來代替實體類,達到簡寫的目的 --> <typeAliases> <!-- 爲實體類me.gacl.domain.User配置一個別名_User --> <!-- <typeAlias type="me.gacl.domain.User" alias="_User"/> --> <!-- 爲me.gacl.domain包下的全部實體類配置別名,MyBatis默認的設置別名的方式就是去除類所在的包後的簡單的類名 好比me.gacl.domain.User這個實體類的別名就會被設置成User --> <package name="me.gacl.domain"/> </typeAliases>
<package name="me.gacl.domain"/>就表示爲這個包下面的全部實體類設置別名。MyBatis默認的設置別名的方式就是去除類所在的包後的簡單的類名,好比me.gacl.domain.User這個實體類的別名就會被設置成User。