mybatis也是基於JDBC的。Java與數據庫操作僅能通過JDBC完成。mybatis也要通過JDBC完成數據查詢、更新這些動作。
mybatis僅僅是在JDBC基礎上做了,OO化、封裝事務管理接口這些東西。
傳統JDBC操作數據
- 使用JDBC編程需要連接數據庫,注冊驅動和數據庫信息
- 操作Connection,打開Statement對象。
- 通過Statement執行SQL,返回結果到ResultSet對象。
- 使用ResultSet讀取數據,然后通過代碼轉化為具體的POJO對象。
- 關閉數據庫的相關資源。
jdbc存在弊端:
- 工作量相對較大,每次都要去創建,關閉,獲取
- JDBC編程可能產生的異常進行捕捉處理並正確關閉資源
對象關系映射(Object Relational Mapping)簡稱ORM
ORM模型就是數據庫的表和簡單Java對象(Plain Ordinary Java Object,簡稱POJO)的映射關系模型。
ORM模型提供了統一的規則使得數據庫的數據通過配置便可輕易的映射到POJO上
常見的有兩種
mybatis
- 易於上手和掌握。
- sql寫在xml里,便於統一管理和優化。
- 解除sql與程序代碼的耦合。
- 提供映射標簽,支持對象與數據庫的orm字段關系映射
- 提供對象關系映射標簽,支持對象關系組建維護
- 提供xml標簽,支持編寫動態sql。
hibernate
- 消除了代碼的映射規則,它全部被分離到XML或者注解里面去配置。
- 無需再管理數據庫連接,它也配置到XML里面。
- 一個會話中,不要操作多個對象,只要操作Sesison即可。
- 關閉資源只需要關閉一個Session即可。