MyBatis的學習(二)——MyBatis事務核心物件及配置
一、獲取SqlSession物件
MyBatis框架中涉及到的幾個API
SqlSessionFactoryBuilder:該物件負責根據MyBatis配置檔案mybatis-config.xml構建SqlSessionFactory例項 負責生產session
SqlSessionFactory:每一個MyBatis的應用程式都以一個SqlSessionFactory物件為核心。該物件負責建立SqlSession物件例項。
SqlSession:該物件包含了所有執行SQL操作的方法,用於執行已對映的SQL語句
二、使用動態代理實現介面的實現類(不需要Mapper實現類)
在傳統專案中,dao層介面需要實現類,而使用MyBatis不需要使用介面實現類,只需要使用配置檔案即可
如何得到動態代理:
SqlSession session=null;
UserMapper mapper=null;
@Before
public void init(){
session = MyBatisUtil.getSession();
mapper=session.getMapper(UserMapper.class);
}
注意:
①保證名稱空間和介面的全路徑一致;
②Statement的id和介面中的方法名一致
③加入到mybatis-config.xml中
總結:
使用mapper介面不用寫介面實現類即可完成資料庫操作,使用非常簡單,也是官方所推薦的使用方法。
使用mapper介面的必須具備以幾個條件:
1) Mapper的namespace必須和mapper介面的全路徑(包名+介面名)一致。
2) Mapper介面的方法名必須和sql定義的id一致。
3) Mapper介面中方法的輸入引數型別必須和sql定義的parameterType一致。
4) Mapper介面中方法的輸出引數型別必須和sql定義的resultType一致。
三、Mybatis-Config配置
properties
settings 設定
typeAliases 類型別名
typeHandlers 型別處理器
objectFactory 物件工廠
plugins 外掛
environments 環境
environment 環境變數
transactionManager 事務管理器
dataSource 資料來源
mappers 對映器
Mybatis的配置檔案中配置項是有順序的,即按照上面的順序;
①Properties
②typeAliases(別名)
類型別名是為 Java 型別命名一個短的名字。 它只和 XML 配置有關, 只用來減少類完全限定名的多餘部分。
使用定義的別名是不區分大小寫的,但一般按java規則去使用即可,即user或者User
③mappers
mapper對映檔案的引入有3種方式:
- 路徑相對於資源目錄跟路徑:
- 使用完整的檔案路徑:注意:此種方法要求mapper介面名稱和mapper對映檔名稱相同,且放在同一個目錄中
- 可直接配個掃描包:推薦!