MyBatis的前身叫iBatis,本是apache的一個(gè)開(kāi)源項(xiàng)目, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis。MyBatis 是一款一流的支持自定義SQL、存儲(chǔ)過(guò)程和高級(jí)映射的持久化框架。mybatis入門(mén)上手非常快,易學(xué)易用,是開(kāi)發(fā)項(xiàng)目的一個(gè)不錯(cuò)的選擇。MyBatis 幾乎消除了所有的JDBC 代碼,也基本不需要手工去設(shè)置參數(shù)和獲取檢索結(jié)果。MyBatis 能夠使用簡(jiǎn)單的XML 格式或者注解進(jìn)行來(lái)配置,能夠映射基本數(shù)據(jù)元素、Map 接口和POJOs(普通java 對(duì)象)到數(shù)據(jù)庫(kù)中的記錄。
MyBatis是支持普通SQL查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plan Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄
Mybatis的功能架構(gòu)分為三層
1) API接口層:提供給外部使用的接口API,開(kāi)發(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ǔ)的支撐。