為什麼要使用mybatis?(jdbc的弊端)
什麼是框架?
框架是乙個半成品,已經對基礎的**進行了封裝並提供相應的api,開發者在使用框架是直接呼叫封裝好的api可以省去很多**編寫,從而提高工作效率和開發速度。
框架定義: 框架是一種經過校驗 具有一定功能的半成品軟體。
經過校驗:指框架本身經過測試 並且框架自身所具有的功能已經實現。
具有一定的功能: 指框架可以完成特定的功能 不同的框架功能不同。
半成品軟體: 指框架自身是乙個軟體,但是改軟體無法。
mybatis可以將sql語句配置在xml檔案中 這避免了jdbc在j**a類中新增sql語句的問題;通過mybatis提供的輸入引數對映方式 將引數只有靈活地配置在sql語句配置檔案中,解決了jdbc中引數在j**a類中手工配置的問題;通過mybatis的輸出對映機制,將結果集的檢索自動對映成相應的j**a物件,避免了jdbc中對結果集的手工檢索;同時mybatis還可以建立自己的資料庫連線池,使用xml配置檔案的形式,對資料庫連線資料進行管理,避免了jdbc的資料庫連線引數的硬編碼問題。
綜上所述,mybatis的特點是,採用配置檔案動態管理sql語句,並含有輸入對映,輸出對映機制及資料庫連線池配置的持久層框架。
mybatis優點--(面試題)
簡單:易於學習,易於使用,通過文件和源**,可以比較安全的掌握它的設計思路和實現。
實用:通過了資料對映功能,提供了對底層資料訪問的封裝,提供了dao框架,可以使我們更容易的開發和配置。
靈活:通過sql基本上可以實現我們不使用資料訪問框架可以實現的所有功能,或許更多。
增強系統的可維護性: 將業務邏輯和資料訪問邏輯分離,使系統的設計更清晰,更易維護 更易單元測試。sql和**的分離,提高了可維護性。
mybatis整體架構,mybatis的執行原理
mybatis-config.xml 配置了全域性的引數 全域性只有乙個配置 檔名稱不是固定的 隨意取名,裡面是你資料庫的資訊和一些**格式的設定
2 通過配置檔案可以得到sqlsessionfactory
3通過sqlsessionfactory 得到sqlsession 得到sessin後可以執行sql
4sqlsessio 通過墊層提供的executor(執行器)執行sql
6通過引數輸入 引數型別有三種,hashmap 簡單型別 pojo
7 在資料庫中執行sql
8輸出得到結果 輸出型別有三種 hashmap 簡單型別 pojo
**中的使用步驟:
1) 通過配置檔案建立sqlsessinfactory
2) sqlsessionfactory 建立sqlsession物件
3) 通過sqlsessin 運算元據庫
4)呼叫session.commit() 提交事務
5)呼叫session.close() 關閉會話
MyBatis的執行原理
答案就是動態 關於動態 的內容,博主在之前的博文中已經詳細介紹過了,此處不再贅述。本文主要探析一下mybatis在執行資料庫操作時的執行原理。package com maowei learning orm dao import com maowei learning orm user public ...
mybatis的執行原理
mybatis執行開始時,使用resources類將磁碟上面的核心配置檔案載入到記憶體中,得到乙個輸入流。inputstream is resources.getresourceasstream mybatis.xml 然後,通過輸入流作為引數傳遞給xmlconfigbuilder,建立乙個xmlc...
mybatis執行原理
1 獲取sqlsessionfactory物件 解析檔案的每乙個資訊儲存在configuration中,返回包含configuration的defaultsqlsessionfactory 2 獲取sqlsession物件 返回乙個defaultsqlsession物件,包含executor和con...