1. 程式人生 > 實用技巧 >2、MyBatis概述

2、MyBatis概述

學習資源:動力節點《2020最新MyBatis教程【IDEA版】-MyBatis從入門到精通》

目錄



1、JDBC 程式設計

1.1、傳統 JDBC 的使用

public void findStudent() {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
        //註冊 mysql 驅動
        Class.forName("com.mysql.jdbc.Driver");
        //連線資料的基本資訊 url , username, password
        String url = "jdbc:mysql://localhost:3306/springdb";
        String username = "root";
        String password = "123456";
        //建立連線物件
        conn = DriverManager.getConnection(url, username, password);
        //儲存查詢結果
        List<Student> stuList = new ArrayList<>();
        //建立 Statement, 用來執行 sql 語句
        stmt = conn.createStatement();
        //執行查詢,建立記錄集,
        rs = stmt.executeQuery("select * from student");
        while (rs.next()) {
            Student stu = new Student();
            stu.setId(rs.getInt("id"));
            stu.setName(rs.getString("name"));
            stu.setAge(rs.getInt("age"));
            //從資料庫取出資料轉為 Student 物件,封裝到 List 集合
            stuList.add(stu);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            //關閉資源
            if (rs != null) {
            rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

1.2、JDBC缺陷

  1. 程式碼比較多,開發效率低
  2. 需要關注 Connection ,Statement, ResultSet 物件建立和銷燬
  3. 對 ResultSet 查詢的結果,需要自己封裝為 List
  4. 重複的程式碼比較多些
  5. 業務程式碼和資料庫的操作混在一起

2、MyBatis 框架

2.1、MyBatis 框架概述

MyBatis 是 SQL Mapper Framework for Java(sql對映框架)。

MyBatis 本是 apache 的一個開源專案 iBatis, 2010 年這個專案由 apache software foundation 遷移到了 google code,並且改名為 MyBatis 。 2013 年 11 月遷移到 Github。iBATIS 一詞來源於“internet”和“abatis”的組合,是一個基於 Java 的持久層框架。 iBATIS 提供的持久層框架包括 SQL Maps

Data Access Objects(DAOs)。

  • SQL Maps:sql對映
    可以把資料庫表中的一行資料對映為 一個java物件,操作這個物件,就相當於操作表中的資料
  • Data Access Objects:資料訪問 , 對資料庫執行增刪改查

MyBatis 是一個 sql 對映框架,提供的資料庫的操作能力。增強的JDBC,使用 MyBatis 讓開發人員集中精神寫 sql 就可以了,不必關心 Connection、Statement、ResultSet 的建立,銷燬,sql的執行。


2.2、MyBatis的優勢

  • 簡單易學:本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar檔案+配置幾個sql對映檔案就可以了,易於學習,易於使用,通過文件和原始碼,可以比較完全的掌握它的設計思路和實現。
  • 靈活:mybatis不會對應用程式或者資料庫的現有設計強加任何影響。 sql寫在xml裡,便於統一管理和優化。通過sql語句可以滿足操作資料庫的所有需求。
  • 解除sql與程式程式碼的耦合:通過提供DAO層,將業務邏輯和資料訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。sql和程式碼的分離,提高了可維護性。
  • 提供xml標籤,支援編寫動態sql

2.3、使用者的任務

使用 MyBatis 的開發人員只需要提供 sql 語句交由 MyBatis處理,得到 List 集合或 java 物件(即表中的資料),最後進行自己的邏輯處理即可。