Mybatis是一款非常專業(yè)的持久層框架,這款軟件不僅可以支持自定義SQL、存儲過程以及高級映射等多種功能,同時我們還可以使用Mybatis官方版來將接口和Java的POJOs映射成數(shù)據(jù)庫中的記錄,這款軟件的功能非常強(qiáng)大,適合專業(yè)的編程人員使用。
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。
每個MyBatis應(yīng)用程序主要都是使用SqlSessionFactory實(shí)例的,一個SqlSessionFactory實(shí)例可以通過SqlSessionFactoryBuilder獲得。SqlSessionFactoryBuilder可以從一個xml配置文件或者一個預(yù)定義的配置類的實(shí)例獲得。
用xml文件構(gòu)建SqlSessionFactory實(shí)例是非常簡單的事情。推薦在這個配置中使用類路徑資源(classpath resource),但你可以使用任何Reader實(shí)例,包括用文件路徑或file://開頭的url創(chuàng)建的實(shí)例。MyBatis有一個實(shí)用類----Resources,它有很多方法,可以方便地從類路徑及其它位置加載資源。
簡單易學(xué):本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar文件+配置幾個sql映射文件易于學(xué)習(xí),易于使用,通過文檔和源代碼,可以比較完全的掌握它的設(shè)計(jì)思路和實(shí)現(xiàn)。
靈活:mybatis不會對應(yīng)用程序或者數(shù)據(jù)庫的現(xiàn)有設(shè)計(jì)強(qiáng)加任何影響。 sql寫在xml里,便于統(tǒng)一管理和優(yōu)化。通過sql語句可以滿足操作數(shù)據(jù)庫的所有需求。
解除sql與程序代碼的耦合:通過提供DAO層,將業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯分離,使系統(tǒng)的設(shè)計(jì)更清晰,更易維護(hù),更易單元測試。sql和代碼的分離,提高了可維護(hù)性。
提供映射標(biāo)簽,支持對象與數(shù)據(jù)庫的orm字段關(guān)系映射
提供對象關(guān)系映射標(biāo)簽,支持對象關(guān)系組建維護(hù)
提供xml標(biāo)簽,支持編寫動態(tài)sql。
功能架構(gòu)
(1)API接口層:提供給外部使用的接口API,開發(fā)人員通過這些本地API來操縱數(shù)據(jù)庫。接口層一接收到調(diào)用請求就會調(diào)用數(shù)據(jù)處理層來完成具體的數(shù)據(jù)處理。
(2)數(shù)據(jù)處理層:負(fù)責(zé)具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結(jié)果映射處理等。它主要的目的是根據(jù)調(diào)用的請求完成一次數(shù)據(jù)庫操作。
(3)基礎(chǔ)支撐層:負(fù)責(zé)最基礎(chǔ)的功能支撐,包括連接管理、事務(wù)管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最基礎(chǔ)的組件。為上層的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐。
框架架構(gòu)
(1)加載配置:配置來源于兩個地方,一處是配置文件,一處是Java代碼的注解,將SQL的配置信息加載成為一個個MappedStatement對象(包括了傳入?yún)?shù)映射配置、執(zhí)行的SQL語句、結(jié)果映射配置),存儲在內(nèi)存中。
(2)SQL解析:當(dāng)API接口層接收到調(diào)用請求時,會接收到傳入SQL的ID和傳入對象(可以是Map、JavaBean或者基本數(shù)據(jù)類型),Mybatis會根據(jù)SQL的ID找到對應(yīng)的MappedStatement,然后根據(jù)傳入?yún)?shù)對象對MappedStatement進(jìn)行解析,解析后可以得到最終要執(zhí)行的SQL語句和參數(shù)。
(3)SQL執(zhí)行:將最終得到的SQL和參數(shù)拿到數(shù)據(jù)庫進(jìn)行執(zhí)行,得到操作數(shù)據(jù)庫的結(jié)果。
(4)結(jié)果映射:將操作數(shù)據(jù)庫的結(jié)果按照映射的配置進(jìn)行轉(zhuǎn)換,可以轉(zhuǎn)換成HashMap、JavaBean或者基本數(shù)據(jù)類型,并將最終結(jié)果返回。
使用mybatis首先要使用配置或者代碼去生產(chǎn)sqlsessionfactory,而mybatis提供了構(gòu)造器sqlsessionfactoryBuilder,他提供了一個類org.apache.ibatis.session.Configution作為引導(dǎo),采用的是builder模式,具體的分布則是在Configuration類里面完成的。
在mybatis中,既可以通過配置的xml文件的形式生成sqlsessionfactory,也可以通過java代碼的形式去生成sqlsessionfactory,個人強(qiáng)烈推薦使用xml文件的形式去生成sqlsessionfactory,因?yàn)榇a的形式在需要修改的時候會比較麻煩,當(dāng)配置了xml或者提供代碼后,mybatis會讀取配置文件,通過Configuration類對象構(gòu)建整個mybatis的上下文。
sqlsessionfactory是一個接口,在mybatis中他存在兩個實(shí)現(xiàn)類:defaultSqlSessionfactory和sqlsessionManager;一般而言,具體使用defaultSqlSessionfactory去實(shí)現(xiàn)的,而sqlsessionfactory使用在多線程的環(huán)境中,他具體實(shí)現(xiàn)依靠defaultfactory;
每個基于mybatis的應(yīng)用都是以一個sqlsessionfactory的實(shí)例為中心的而sqlsessionfactory唯一的作用就是生產(chǎn)mybatis的核心接口對象sqlsession,所以他的作用是唯一的
1贛教云教學(xué)通2.0-贛教云教學(xué)通2.0下載 v5......
2step7 microwin-西門子PLC S7......
3百度網(wǎng)盤清爽精簡純凈版-網(wǎng)盤工具-百度網(wǎng)盤清爽精......
4360安全瀏覽器-瀏覽器-360安全瀏覽器下載 ......
5谷歌瀏覽器 XP版-谷歌瀏覽器 XP版-谷歌瀏覽......
6Kittenblock重慶教育專用版-機(jī)器人編程......
7seo外鏈助手(超級外鏈) -SEO外鏈優(yōu)化工具......
8Notepad3-記事本軟件-Notepad3下......