1. 程式人生 > 實用技巧 >Mybatis的基本應用

Mybatis的基本應用

課堂目標

主要內容

  1. 學習Mybatis的快速入門,包括Mybatis的開發步驟、增刪改查操作;
  2. 瞭解Mybatis框架的配置檔案;
  3. 瞭解Mybatis框架的相應API;
  4. 瞭解Mybatis的Dao層實現,尤其是代理開發方式。

知識點掌握

  1. Mybatis框架的配置;
  2. Mybatis框架的增刪改查操作;
  3. Mybatis框架的API;
  4. Mybatis的代理開發。

課堂內容

Q1:簡述Mybatis的快速入門步驟。

A1:

  1. 新增MyBatis座標(環境依賴)
  2. 建立資料庫資料表(user表)
  3. 編寫實體類(User類)
  4. 編寫對映檔案Mapper.xml
  5. 編寫核心檔案SqlMapConfig.xml
  6. 編寫測試類

Q2:簡述Mybatis增刪改查的操作步驟。

A2:

  1. 編寫XML對映檔案;
  2. 編寫增刪改查實體類的程式碼。

注意:涉及到資料庫資料變化需要使用提交事務,無論是手動提交還是自動提交。

Q3:簡述對Mybatis框架的配置檔案的分析。

A3:Mybatis的配置檔案主要分成核心配置檔案SQL語句的mapper對映檔案。

  1. 核心配置檔案(configuration配置)
    • configuration
      • properties 屬性
      • settings 設定
      • typeAliases 類型別名
      • typeHandlers 型別處理器
      • objectFactory 物件工廠
      • plugins 外掛
      • environments 環境
        • environment 環境變數
          • transactionManager 事務管理器
          • dataSource 資料來源
      • databaseIdPrivider 資料庫廠商標識
      • mapper 對映器
  2. mapper對映檔案
    • mapper(namespace屬性)
      • select(id屬性,resultType屬性,parameterType屬性)
        • SQL語句

Q4:Mybatis框架的常用API都有哪些?

A4:

  1. SqlSession工廠構造器SqlSessionFactoryBuilder

    • SqlSessionFactory build(InputStream inputStream)
  2. Resources工具類

    • Resources.getResourceAsStream(被載入檔案路徑)
  3. SqlSessionFactory常用的建立SqlSession例項的方法:

    • openSession(),預設開啟一個事務,但事務不會自動提交;
    • openSession(boolean autoCommit),引數為是否自動提交,如果設定為true,那麼不需要手動提交事務。
  4. SqlSession會話物件

    // 查詢返回一個的值
    <T> T selectOne(String statement, Object parameter) 
    // 查詢返回一個列表的值
    <E> List<E> selectList(String statement, Object parameter)
    // 插入一條新資料
    int insert(String statement, Object parameter) 
    // 更新一條資料
    int update(String statement, Object parameter) 
    // 刪除一條資料
    int delete(String statement, Object parameter)
    
  5. SqlSession操作事務的方法

    // 提交事務
    void commit()
    // 回滾事務
    void rollback()
    

Q5:Mybatis的代理開發方式

A5:Mapper介面開發方法只需要程式設計師編寫Mapper介面(相當於Dao介面),由Mybatis框架根據介面定義建立介面的動態代理物件,代理物件的方法體同上邊Dao介面實現類方法。

Mapper介面開發規範

  1. Mapper.xml檔案中的namespacemapper介面的全限定名相同;
  2. Mapper介面方法名和Mapper.xml中定義的每個statement的id相同;
  3. Mapper介面方法的輸入引數型別和mapper.xml中定義的每個sql的parameterType的型別相同;
  4. Mapper介面方法的輸出引數型別和mapper.xml中定義的每個sql的resultType的型別相同。

課堂總結

  1. Mybatis框架的配置
    • 核心配置檔案;
    • Mapper對映檔案;
    • 編寫mapper介面;
    • 編寫介面測試類。
  2. Mybatis框架的增刪改查操作(純xml方式);
    • 編寫xml檔案;
    • 編寫測試類;
  3. Mybatis框架的API;
    1. 載入檔案工具類Resources.getResourceAsStream();
    2. 工廠類構造SqlSessionFactory build(InputStream inputStream);
    3. 建立SqlSession例項;
      • openSession();
      • openSession(boolean autoCommit)
    4. SqlSession的方法:
      • selectOne
      • selectList
      • insert
      • update
      • delete
      • commit
      • rollback
  4. Mybatis的代理開發
    1. 通過反射、內省的方式連線xml檔案;
    2. 不需要編寫介面的實現類。