2、MyBatis概述
阿新 • • 發佈:2020-09-03
目錄
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缺陷
- 程式碼比較多,開發效率低
- 需要關注 Connection ,Statement, ResultSet 物件建立和銷燬
- 對 ResultSet 查詢的結果,需要自己封裝為 List
- 重複的程式碼比較多些
- 業務程式碼和資料庫的操作混在一起
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
- 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 物件(即表中的資料),最後進行自己的邏輯處理即可。