MyBatis(3)之MyBatis全域性配置檔案
阿新 • • 發佈:2018-12-18
全域性配置檔案(如SqlMapConfig.xml)
configuration配置
- properties屬性
- setting設定
- typeAliases型別命名
- typeHandlers型別處理器
- objectFactory物件工廠
- plugins外掛
- environments環境
- environment環境變數
- transactionManager事務管理器
- dataSource資料來源
- 對映器
原SqlMapConfig.xml
<configuration> <environments default="mysql"> <environment id="mysql"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql///test"/> <property name="username" value="root"/> <property name="password" value="12345"/> </dataSource> </environment> </environments> <mappers> <mapper resource="sqlmap/User.xml"/> </mappers> </configuration>
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/human_resource?characterEncoding=utf-8
jdbc.username=root
jdbc.password=12345
改後SqlMapConfig.xml
<configuration> <properties resource="db.prperties"> //<property name="jdbc.username" value="root"/> ① </properties> <environments default="mysql"> <environment id="mysql"> <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="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> //<property name="password" value="12345"/> </dataSource> </environment> </environments> <mappers> <mapper resource="sqlmap/User.xml"/> </mappers> </configuration>
(1)properties
利用 properties元素的 resource屬性將外部屬性檔案載入進來;
載入屬性的順序:
- 讀取 properties元素中定義的屬性首先載入(即 上面①);
- 讀取 properties元素的 resource屬性載入的屬性檔案中的屬性(即 db.properties),會覆蓋掉 1;【常用】
- 讀取 parameterType中傳遞的屬性,會覆蓋掉已被讀取的同名屬性值; (最高優先順序屬性是那些作為方法引數的,即 parameterType傳遞過來的屬性) 一般:常用載入 .properties外部屬性檔案的方法;在 .properties檔案中,key加上特殊規則(如 jdbc.xx)。
如在 config下建立一個 db.properties屬性檔案(與 log4j.properties同目錄),此時可在全域性配置檔案中新增< properties>利用 resource屬性將 db.properties檔案載入進來,通過屬性檔案中的鍵得到值,此時< DataSource>中< property name=“driver” value="${jdbc.driver}">即通過 $ {鍵 }獲取值; 也可以直接在< properties>下新增 < property>,再通過 $ {鍵 }獲取值;