對於大數據技術開發者而言,Mybatis作為一個優秀的持久層框架,是需要具備的一項重要基礎。涉及到數據存儲、數據查詢,Mybatis內部封裝好JDBC,可以大大提升開發效率。今天的大數據基礎分享,我們就來講講Mybatis基礎入門。Mybatis的前身是Apache的開源項目iBatis,在經過多次的迭代更新,才最終以Mybatis的名稱定了下來。當前Mybatis最新版本是Mybatis 3.5.5,今年上半年6月發布。
Mybatis簡介Mybatis是一個基於Java的持久層框架,內部封裝了JDBC,使開發者只需要關注SQL語句本身,而不需要花費精力去處理加載驅動、創建連接、創建statement等繁雜的過程。Mybatis通過xml或註解的方式將要執行的各種statement配置起來,並通過Java對象和statement中SQL的動態參數進行映射生成最終執行的SQL語句,最後由Mybatis框架執行SQL並將結果映射為Java對象並返回。採用ORM思想解決了實體和資料庫映射的問題,對JDBC進行了封裝,屏蔽了JDBC api底層訪問細節,使我們不用與JDBC api打交道,就可以完成對資料庫的持久化操作。
Mybatis優缺點優點:①簡單易學:本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar文件+配置幾個SQL映射文件易於學習,易於使用,通過文檔和原始碼,可以比較完全的掌握它的設計思路和實現。②靈活:Mybatis不會對應用程式或者資料庫的現有設計強加任何影響。SQL寫在xml裡,便於統一管理和優化。通過SQL基本上可以實現我們不使用數據訪問框架可以實現的所有功能,或許更多。③解除SQL與程序代碼的耦合:通過提供DAL層,將業務邏輯和數據訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。SQL和代碼的分離,提高了可維護性。④提供映射標籤,支持對象與資料庫的orm欄位關係映射。⑤提供對象關係映射標籤,支持對象關係組建維護。⑥提供xml標籤,支持編寫動態SQL。缺點:①編寫SQL語句時工作量很大,尤其是欄位多、關聯表多時,更是如此。②SQL語句依賴於資料庫,導致資料庫移植性差,不能更換資料庫。③框架還是比較簡陋,功能尚有缺失,雖然簡化了數據綁定代碼,但是整個底層資料庫查詢實際還是要自己寫的,工作量也比較大,而且不太容易適應快速資料庫修改。④二級緩存機制不佳。Mybatis核心APIMybatis中核心配置文件有兩種:Mybatis核心配置文件和Mybatis映射文件。Mybatis核心API:
SQLSessionFactoryBuilder:SQLSessionFactoryBuilder對象的生命周期是局部方法內,即用之即丟。SQLSessionFactoryBuilder用於創建SQLSessionFacoty,SQLSessionFacoty一旦創建完成就不需要SQLSessionFactoryBuilder了。因為SQLSession是通過SQLSessionFactory創建的,所以可以將SQLSessionFactoryBuilder當成一個工具類使用,最佳使用範圍是方法範圍即方法體內局部變量。SQLSessionFactory:SQLSessionFactory是單例的,在整個工程內生效。創建SQLSession的工廠,是一個接口,接口中定義了openSession的不同重載方法。SQLSessionFactory的最佳使用範圍是整個應用運行期間,一旦創建後可以重複使用,通常以單例模式管理SQLSessionFactory。SQLSession:生命周期一次資料庫訪問請求過程。連接到資料庫的一個會話。SQLSession中定義了資料庫操作方法。每個線程都應該有它自己的SQLSession實例。SQLSession的實例不能共享使用,它也是線程不安全的。因此最佳的範圍是請求或方法範圍。SQLSession在執行SQL語句時有兩種方式:通過具體方法的完整路徑來執行;通過mapper接口來執行(建議使用)。關於大數據基礎,Mybatis基礎入門,以上就為大家做了簡單的介紹了。對於大數據開發者而言,掌握好Mybatis,對於底層基礎架構搭建,還是很有應用意義和參考價值的。