亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

有關(guān)mybatis知識點(diǎn)解析 mybatis調(diào)用存儲過程( 二 )


都是對jdbc的封裝,都是持久層的框架,都用于dao層的開發(fā) 。
不同點(diǎn)
映射關(guān)系
MyBatis 是一個(gè)半自動映射的框架,配置Java對象與sql語句執(zhí)行結(jié)果的對應(yīng)關(guān)系,多表關(guān)聯(lián)關(guān)系配置簡單Hibernate 是一個(gè)全表映射的框架,配置Java對象與數(shù)據(jù)庫表的對應(yīng)關(guān)系,多表關(guān)聯(lián)關(guān)系配置復(fù)雜SQL優(yōu)化和移植性
Hibernate 對SQL語句封裝,提供了日志、緩存、級聯(lián)(級聯(lián)比 MyBatis 強(qiáng)大)等特性,此外還提供 HQL(Hibernate Query Language)操作數(shù)據(jù)庫,數(shù)據(jù)庫無關(guān)性支持好,但會多消耗性能 。如果項(xiàng)目需要支持多種數(shù)據(jù)庫,代碼開發(fā)量少,但SQL語句優(yōu)化困難 。MyBatis 需要手動編寫 SQL,支持動態(tài) SQL、處理列表、動態(tài)生成表名、支持存儲過程 。開發(fā)工作量相對大些 。直接使用SQL語句操作數(shù)據(jù)庫,不支持?jǐn)?shù)據(jù)庫無關(guān)性,但sql語句優(yōu)化容易 。開發(fā)難易程度和學(xué)習(xí)成本
Hibernate 是重量級框架,學(xué)習(xí)使用門檻高,適合于需求相對穩(wěn)定,中小型的項(xiàng)目,比如:辦公自動化系統(tǒng)MyBatis 是輕量級框架,學(xué)習(xí)使用門檻低,適合于需求變化頻繁,大型的項(xiàng)目,比如:互聯(lián)網(wǎng)電子商務(wù)系統(tǒng)總結(jié)
MyBatis 是一個(gè)小巧、方便、高效、簡單、直接、半自動化的持久層框架,Hibernate 是一個(gè)強(qiáng)大、方便、高效、復(fù)雜、間接、全自動化的持久層框架 。MyBatis的解析和運(yùn)行原理MyBatis編程步驟是什么樣的?
1、 創(chuàng)建SqlSessionFactory
2、 通過SqlSessionFactory創(chuàng)建SqlSession
3、 通過sqlsession執(zhí)行數(shù)據(jù)庫操作
4、 調(diào)用session.commit()提交事務(wù)
5、 調(diào)用session.close()關(guān)閉會話
請說說MyBatis的工作原理 在學(xué)習(xí) MyBatis 程序之前,需要了解一下 MyBatis 工作原理,以便于理解程序 。MyBatis 的工作原理如下圖
1)讀取 MyBatis 配置文件:mybatis-config.xml 為 MyBatis 的全局配置文件,配置了 MyBatis 的運(yùn)行環(huán)境等信息,例如數(shù)據(jù)庫連接信息 。
2)加載映射文件 。映射文件即 SQL 映射文件,該文件中配置了操作數(shù)據(jù)庫的 SQL 語句,需要在 MyBatis 配置文件 mybatis-config.xml 中加載 。mybatis-config.xml 文件可以加載多個(gè)映射文件,每個(gè)文件對應(yīng)數(shù)據(jù)庫中的一張表 。
3)構(gòu)造會話工廠:通過 MyBatis 的環(huán)境等配置信息構(gòu)建會話工廠 SqlSessionFactory 。
4)創(chuàng)建會話對象:由會話工廠創(chuàng)建 SqlSession 對象,該對象中包含了執(zhí)行 SQL 語句的所有方法 。
5)Executor 執(zhí)行器:MyBatis 底層定義了一個(gè) Executor 接口來操作數(shù)據(jù)庫,它將根據(jù) SqlSession 傳遞的參數(shù)動態(tài)的生成需要執(zhí)行的 SQL 語句,同時(shí)負(fù)責(zé)查詢緩存的維護(hù) 。
6)MappedStatement 對象:在 Executor 接口的執(zhí)行方法中有一個(gè) MappedStatement 類型的參數(shù),該參數(shù)是對映射信息的封裝,用于存儲要映射的 SQL 語句的 id、參數(shù)等信息 。
7)輸入?yún)?shù)映射:輸入?yún)?shù)類型可以是 Map、List 等集合類型,也可以是基本數(shù)據(jù)類型和 POJO 類型 。輸入?yún)?shù)映射過程類似于 JDBC 對 preparedStatement 對象設(shè)置參數(shù)的過程 。
8)輸出結(jié)果映射:輸出結(jié)果類型可以是 Map、 List 等集合類型,也可以是基本數(shù)據(jù)類型和 POJO 類型 。輸出結(jié)果映射過程類似于 JDBC 對結(jié)果集的解析過程 。
MyBatis的功能架構(gòu)是怎樣的我們把Mybatis的功能架構(gòu)分為三層:
API接口層:提供給外部使用的接口API,開發(fā)人員通過這些本地API來操縱數(shù)據(jù)庫 。接口層一接收到調(diào)用請求就會調(diào)用數(shù)據(jù)處理層來完成具體的數(shù)據(jù)處理 。數(shù)據(jù)處理層:負(fù)責(zé)具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結(jié)果映射處理等 。它主要的目的是根據(jù)調(diào)用的請求完成一次數(shù)據(jù)庫操作 ?;A(chǔ)支撐層:負(fù)責(zé)最基礎(chǔ)的功能支撐,包括連接管理、事務(wù)管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最基礎(chǔ)的組件 。為上層的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐 。MyBatis的框架架構(gòu)設(shè)計(jì)是怎么樣的這張圖從上往下看 。MyBatis的初始化,會從mybatis-config.xml配置文件,解析構(gòu)造成Configuration這個(gè)類,就是圖中的紅框 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: