properties標籤能夠用來加載別的配置文件,好比能夠加載數據庫的配置文件,jdbc.properties。mysql
下面是jdbc.propertiessql
1 jdbc.driverClassName=com.mysql.jdbc.Driver 2 jdbc.url=jdbc:mysql://localhost:3306/db_mbre
3 jdbc.username=root 4 jdbc.password=123456
而後在全局的配置文件MyBatis-config.xml中引入該配置文件:數據庫
1 <properties resource="jdbc.properties" /> 緩存
引入之後就能夠在全局配置文件中配置數據庫時,使用這些信息了:mybatis
1 <dataSource type="POOLED">
2 <property name="driver" value="${jdbc.driverClassName}" />
3 <property name="url" value="${jdbc.url}" />
4 <property name="username" value="${jdbc.username}" />
5 <property name="password" value="${jdbc.password}" />
6 </dataSource>
加載properties的順序:app
一、 先加載<properties>標籤下的property標籤,觀察有沒有對應的鍵值對dom
二、 而後在加載properties的resource屬性指定的配置文件。ide
MyBatis默認支持的別名:測試
別名ui |
映射的類型 |
_byte |
byte |
_long |
long |
_short |
short |
_int |
int |
_integer |
int |
_double |
double |
_float |
float |
_boolean |
boolean |
string |
String |
byte |
Byte |
long |
Long |
short |
Short |
int |
Integer |
integer |
Integer |
double |
Double |
float |
Float |
boolean |
Boolean |
date |
Date |
decimal |
BigDecimal |
bigdecimal |
BigDecimal |
MyBatis對於基本的數據類型定義了別名,咱們能夠爲咱們本身建立的pojo類定義別名,定義別名採用的是<typeAliases>標籤:
1 <typeAliases>
2 <typeAlias alias="Student" type="com.Aiden.domain.Student" />
3 </typeAliases>
定義完別名之後,就能夠在mapper文件中使用別名了:
批量定義別名,直接定義包名,包下面的類的別名默認爲類名。首字母大小寫便可。
Mapper標籤用於引入mapper配置文件:
<mapper resource=」」> 使用相對於類路徑的資源
<mapper url=」」> 使用徹底限定路徑
<mapper class=」」> 使用mapper接口的全限定名(此方法要求mapper接口和mapper映射文件要名稱相同,且放在同一個目錄下面)
<package name=」」> 註冊指定包下的全部映射文件(此方法要求mapper接口和mapper映射文件要名稱相同,且放在同一個目錄下面)
MyBatis能夠配置多種環境。你如開發時的環境、測試時的環境。這樣能夠將SQL映射應用於多種數據庫之中。(注:能夠配置多種環境,但每一個數據庫對應一個SQLSessionFactory,若是想鏈接兩個數據庫,則須要建立兩個SqlSessionFactory實例,每一個數據庫對應一個)。
爲明確建立哪一種環境,能夠將它做爲可選的參數傳遞給SQLSessionFactoryBuilder。
可接受環境配置的兩個方法簽名是:
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment);
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,environment,properties);
若是環境被忽略,那麼默認環境將會被加載,按照以下方式進行:
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader);
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);
配置以下:
1 <environments default="development">
2 <environment id="development">
3 <transactionManager type="JDBC" />
4 <dataSource type="POOLED">
5 <property name="driver" value="${jdbc.driverClassName}" />
6 <property name="url" value="${jdbc.url}" />
7 <property name="username" value="${jdbc.username}" />
8 <property name="password" value="${jdbc.password}" />
9 </dataSource>
10 </environment>
11 <environment id="test">
12 <transactionManager type="JDBC" />
13 <dataSource type="POOLED">
14 <property name="driver" value="${jdbc.driverClassName}" />
15 <property name="url" value="${jdbc.url}" />
16 <property name="username" value="${jdbc.username}" />
17 <property name="password" value="${jdbc.password}" />
18 </dataSource>
19 </environment>
20 </environments>
MyBatis全局配置參數,全局參數將會影響MyBatis的運行行爲。好比:開啓二級緩存、開啓延時加載。具體可配置狀況以下:(摘自《深刻淺出MyBatis技術原理與實踐》)
Mapper.xml映射文件中定義了操做數據庫的SQL,每一個數據庫SQL 是一個statement ,映射文件是MyBatis的核心。
ParameterType(輸入類型)
經過parameterType指定輸入參數的類型,類型能夠是簡單類型、hashmap、pojo的包裝類型。#{}實現的是向prepareStatement中的預處理語句中設置參數值,SQL語句中#{}表示一個佔位符。例如:
使用佔位符#{}能夠有效防止SQL注入,在使用時不須要關心參數值的類型,MyBatis會自動進行Java類型和jdbc類型的轉換。#{}能夠接收簡單類型值或pojo屬性值,若是parameterType傳輸單個簡單屬性值,#{}括號能夠是value或其餘名稱。
resultType
使用resultType能夠進行輸出映射,只有查詢出來的列名和pojo中的屬性名一致,才能夠映射成功。若是查詢出來的列名和pojo中的屬性名所有不一致,就不會建立pojo對象。可是隻要查詢出來的列名和pojo中的屬性有一個一致,就會建立pojo對象。
resultType能夠輸出簡單類型。例如查詢用戶信息的綜合查詢列表總數,經過查詢總數和上邊用戶綜合查詢列表才能夠實現分頁。
mybatis中能夠使用resultMap完成高級輸出結果映射。若是查詢出來的列名和定義的pojo屬性名不一致,就能夠經過定義一個resultMap對列名和pojo屬性名之間做一個映射關係。而後使用resultMap做爲statement的輸出映射類型。resultMap能夠實現將查詢結果映射爲複雜類型的pojo。