1. 程式人生 > >MyBatis學習總結——優化MyBatis配置檔案中的配置

MyBatis學習總結——優化MyBatis配置檔案中的配置

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"?>
  <!-- 引用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>
複製程式碼 二、為實體類定義別名,簡化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來代替,這就達到了一個簡化實體類引用的目的。

除了可以使用這種方式單獨為某一個實體類設定別名之外,我們還可以使用如下的方式批量為某個包下的所有實體類設定別名,如下:

複製程式碼

<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。
  轉載部落格園,博主孤傲蒼狼