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