當前位置:首頁 » 數據倉庫 » java中jdbc對資料庫的封裝
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java中jdbc對資料庫的封裝

發布時間: 2023-06-16 08:14:24

㈠ Mybatis是什麼以及Mybatis和JDBC的關系

Mybatis是什麼

mybatis是一個持久層ORM框架。它內部封裝了jdbc,使得開發更簡潔,更高效。

MyBatis可以通過xml或註解完成ORM映射關系配置。

Mybatis和JDBC的關系

JDBC是Java提供的一個操作資料庫的API; MyBatis是一個持久層ORM框架,底層是對JDBC的封裝。

MyBatis對JDBC操作資料庫做了一系列的優化:

(1) mybatis使用已有的連接池管理,避免浪費資源,提高程序可靠性。

(2) mybatis提供插件自動生成DAO層代碼,提高編碼效率和准確性。

(3)mybatis 提供了一級和二級緩存,提高了程序性能。

(4) mybatis使用動態sql語句,提高了SQL維護。(此優勢是基於XML配置)

(5) mybatis對資料庫操作結果進行自動映射

MyBatis的優點和缺點

優點:

簡單:易於學習,易於使用,通過文檔和源代碼,可以比較完全的掌握它的設計思路和實現。

實用:提供了數據映射功能,提供了對底層數據訪問的封裝(例如ado.net),提供了DAO框架,可以使我們更容易的開發和配置我們的DAL層。

靈活:通過sql基本上可以實現我們不使用數據訪問框架可以實現的所有功能,或許更多。

功能完整:提供了連接管理,緩存支持,線程支持,(分布式)事物管理,通過配置作關系對象映射等數據訪問層需要解決的問題。提供了DAO支持,並在DAO框架中封裝了ADO.NET,NHibernate和DataMapper。

增強系統的可維護性:通過提供DAO層,將業務邏輯和數據訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。sql和代碼的分離,提高了可維護性。

缺點:

sql工作量很大,尤其是欄位多、關聯表多時,更是如此。

sql依賴於資料庫,導致資料庫移植性差。

由於xml里標簽id必須唯一,導致DAO中方法不支持方法重載。

欄位映射標簽和對象關系映射標簽僅僅是對映射關系的描述,具體實現仍然依賴於sql。(比如配置了一對多Collection標簽,如果sql里沒有join子表或查詢子表的話,查詢後返回的對象是不具備對象關系的,即Collection的對象為null)。

DAO層過於簡單,對象組裝的工作量較大。

不支持級聯更新、級聯刪除。

編寫動態sql時,不方便調試,尤其邏輯復雜時。

提供的寫動態sql的xml標簽功能簡單(連struts都比不上),編寫動態sql仍然受限,且可讀性低。使用不當,容易導致N+1的sql性能問題。

㈡ java的API,怎麼理解,JDBC是什麼

API: java中被封裝好的類和 方法直接可以拿來使用
JDBC :資料庫廠商發布的 :讓程序員更好更方便的操作自己資料庫的一些方法和操作的集合(及api)

所以可以理解為 jdbc是一種被包裝好的 我們直接可以拿來 使用(包括連接,查詢,更新 資料庫)的工具 這樣解釋應該很明白了吧