MyBatis系列第一篇:MyBatis簡介

前言

不知道大家是否還記得使用原生JDBC來操作數據庫?“加載驅動、獲取連接、拼接SQL、執行SQL、獲取結果、解析結果、關閉數據庫連接”,這些操作是純JDBC方式必須要經歷的一些步驟,每一次操作數據庫都需要寫這些,但真正和開發相關的卻只有“拼接SQL、執行SQL、解析結果”,而其他的步驟幾乎是所有DB操作共用的一些步驟,所以純JDBC的方式重複代碼太多了,而且如果每次操作都使用這種方式的話,在“獲取連接、關閉連接”的過程中也會損耗大量時間。

上面這些問題使得開發變得緩慢,千奇百怪的SQL也使得系統變得難以維護,於是就冒出了各種各樣的優秀框架來解決這些問題,比如常見的JdbcTemplate、Hibernate、MyBatis等。本系列博客主要關注的是流行更廣的MyBatis框架。

一、什麼是ORM

首先說一些ORM。ORM(Object Relational Mapping):對象關係映射,簡單點來說就是將數據庫中的表和Java中的對象建立起映射關係,可以讓我們操作Java對象來間接的操作數據庫中的表。

二、JdbcTemplate框架

JdbcTemplate是在Spring框架的基礎上開發出的jdbc框架,Spring對jdbc做了封裝,隱藏了各種重複的操作,所以它對Spring是有依賴的。我們使用時只需要傳入:需要執行的SQL、需要的參數、以及對結果做對應解析就可以了。使用起來比較方便,但是如果面對動態SQL,它就無能爲力了。

三、Hibernate框架

Hibernate可以讓你通過Java對象來間接的操作數據庫,Java對象就相當於數據庫中表的代理一樣,當你想刪除表中數據的時候,不需要自己寫delete語句發給數據庫,只需要對Hibernate說我需要刪除哪個Java對象就行了,Hibernate會自動根據你的操作去生成db需要的sql然後發給db去執行,對於我們來說隱藏了底層jdbc和db的交互過程,可能開發者不需要掌握數據庫技術,就可以通過這個框架直接操作數據庫,比如對數據庫進行增、刪、改、查可能需要開發者會寫各種sql腳本,還有每種數據庫的sql腳本語法也不一樣,剛開始項目使用的是mysql,你按照mysql的語法寫的,後面可能要切換到oracle,語法上面需要變動,但是如果你使用hibernate,這些都不是問題,你不會sql也沒關係,而你只需要像操作Java對象一樣去操作數據庫,Hibernate會根據你的操作和db的類型自動生成操作所需要的sql,一種寫法能夠跨多種數據庫運行。

四、MyBatis框架

MyBatis相對於純JDBC來說,也是隱藏了許多重複性的工作,可以說它是一個半自動化的ORM框架。爲什麼說它是一個半自動化的呢?因爲在使用它時,需要我們手動去寫SQL,但是,操作DB的過程、動態SQL的拼接、執行結果的映射,這些MyBatis都幫我們做得很好,從而可以讓我們開發者花費更多的時間在SQL的寫法和優化上面。所以,毫無疑問的是現在大部分互聯網公司基本上都在使用MyBatis。

摘自MyBatis官網的一句話:MyBatis 是一款優秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或註解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)爲數據庫中的記錄。

 

另1:MyBatis官網:https://mybatis.org/mybatis-3/zh/index.html

另2:Java乾貨鋪子之MyBatis:http://www.itsoku.com/tag/31

另3:參考教學視頻:https://www.bilibili.com/video/BV1V7411w7VW?p=3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章