MyBatis學習總結——優化MyBatis配置檔案中的配置
阿新 • • 發佈:2018-12-13
MyBatis學習總結——優化MyBatis配置檔案中的配置
一、連線資料庫的配置單獨放在一個properties檔案中
之前,我們是直接將資料庫的連線配置資訊寫在了MyBatis的conf.xml檔案中,如下:
複製程式碼
<?xml version="1.0" encoding="UTF-8"?> 複製程式碼 其實我們完全可以將資料庫的連線配置資訊寫在一個properties檔案中,然後在conf.xml檔案中引用properties檔案,具體做法如下:1、在src目錄下新建一個db.properties檔案,如下圖所示:
在db.properties檔案編寫連線資料庫需要使用到的資料庫驅動,連線URL地址,使用者名稱,密碼,如下:
1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost:3306/mybatis
3 name=root
4 password=XDP
2、在MyBatis的conf.xml檔案中引用db.properties檔案,如下:
複製程式碼
<?xml version="1.0" encoding="UTF-8"?>複製程式碼 二、為實體類定義別名,簡化sql對映xml檔案中的引用 之前,我們在sql對映xml檔案中的引用實體類時,需要寫上實體類的全類名(包名+類名),如下: insert into users(name,age) values(#{name},#{age}) parameterType="me.gacl.domain.User"這裡寫的實體類User的全類名me.gacl.domain.User,每次都寫這麼一長串內容挺麻煩的,而我們希望能夠簡寫成下面的形式 insert into users(name,age) values(#{name},#{age}) parameterType="_User"這樣寫就簡單多了,為了達到這種效果,我們需要在conf.xml檔案中為實體類="me.gacl.domain.User"定義一個別名為"_User",具體做法如下: 在conf.xml檔案中標籤中新增如下配置: 這樣就可以為me.gacl.domain.User類定義了一個別名為_User,以後_User就代表了me.gacl.domain.User類,這樣sql對映xml檔案中的凡是需要引用me.gacl.domain.User類的地方都可以使用_User來代替,這就達到了一個簡化實體類引用的目的。<!-- 引用db.properties配置檔案 --> <properties resource="db.properties"/> <!-- development : 開發模式 work : 工作模式 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置資料庫連線資訊 --> <dataSource type="POOLED"> <!-- value屬性值引用db.properties配置檔案中配置的值 --> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${name}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments>
除了可以使用這種方式單獨為某一個實體類設定別名之外,我們還可以使用如下的方式批量為某個包下的所有實體類設定別名,如下:
複製程式碼
<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>
複製程式碼
就表示為這個包下面的所有實體類設定別名。MyBatis預設的設定別名的方式就是去除類所在的包後的簡單的類名,比如me.gacl.domain.User這個實體類的別名就會被設定成User。
轉載部落格園,博主孤傲蒼狼