其他概念:
1、接口式編程
原生: Dao ------------------> DaoImpl
Mybatis Mapper -------------> xxMapper.xml
2、SqlSession代表和數據庫的一次會話,用完須關閉
3、SqlSession和Connection兩者都不是線程安全的,每次使用都應該去獲取新的對象
4、Mapper接口沒有實現類,但是mybatis會爲它生成一個代理對象。(將接口與xml進行綁定)
EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMappper.getClass);
5、兩個重要的配置文件
mybatis的全局配置文件:數據庫連接池信息、事務管理器信息、系統運行環境信息等
sql映射文件:保存了每一個sql語句的映射信息:將sql抽取出來
Mybatis全局配置文件
5、mybatis可使用properties標籤引入外部properties配置文件的內容
<properties resource="dbconfig.properties"></properties>
resource:引入類路徑下的資源
url:引入網絡路徑下或者磁盤路徑下的資源
6、settings運行時行爲的配置標籤
setting:用來設置每一個設置項
name:設置項名
value:設置項取值
7、typeAliases標籤:別名處理器:可以爲我們的Java類型起別名(推薦批量起別名方式)
<package name="com.xuan.mybatis.bean"/>
package:爲某個包下所有的類批量起別名
name:指定包名(爲當前包以及下面所有的子包的每一個類都起一個默認的別名(類型小寫 ))
注意:批量起別名的情況下,使用 @Alisa註解爲某個類型指定新的別名(防止出現同一個包下出現兩個相同名字的類)
8、environments標籤:可以爲mybatis配置多種環境(開發環境、測試環境等),default指定使用某種環境
environment:配置一個具體的環境信息;必須包含兩個標籤(transactionManager、dataSource),id代表當前環境唯一標識
transactionManager:事務管理器
dataSource:數據源
9、databaseIdProvider標籤:支持多數據廠商的 type屬性作用就是得到數據庫廠商的標識(Mysql、Oracle、SQL server…)
<databaseIdProvider>
<!--爲不數據庫廠商起別名-->
<property name="Mysql" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL server" value="sqlserver"/>
</databaseIdProvider>
10、mappers標籤:將sql映射註冊到全局配置中
mapper:註冊一個sql映射
resource屬性:引用類路徑下的sql映射文件
url屬性:引用網絡路徑或磁盤路徑下的sql映射文件
class屬性:引用(註冊)接口
1、有sql映射文件、映射文件名必須或接口同名,並且要放在與接口同一目錄下;
2、沒有sql映射文件,所有的sql都是利用註解寫在接口上;
推薦:
a)比較重要、複雜的Dao接口使用sql映射文件來編寫
b)不重要、簡單的Dao接口爲了開發快速可以使用註解