MyBatis 是支持普通 SQL 查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis 消除 了幾乎所有的 JDBC 代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡(jiǎn)單的 XML 或注解用于配置和原始映射,將接口和 Java 的 POJOs(Plain Old 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,它有很多方法,可以方便地從類路徑及其它位置加載資源。
MyBatis 最強(qiáng)大的特性之一就是它的動(dòng)態(tài)語(yǔ)句功能。如果您以前有使用JDBC或者類似框架的經(jīng)歷,您就會(huì)明白把SQL語(yǔ)句條件連接在一起是多么的痛苦,要確保不能忘記空格或者不要在columns列后面省略一個(gè)逗號(hào)等。動(dòng)態(tài)語(yǔ)句能夠完全解決掉這些痛苦。盡管與動(dòng)態(tài)SQL一起工作不是在開一個(gè)party,但是MyBatis確實(shí)能通過(guò)在任何映射SQL語(yǔ)句中
使用強(qiáng)大的動(dòng)態(tài)SQL來(lái)改進(jìn)這些狀況。
動(dòng)態(tài)SQL元素對(duì)于任何使用過(guò)JSTL或者類似于XML之類的文本處理器的人來(lái)說(shuō),都是非常熟悉的。在上一版本中,需要了解和學(xué)習(xí)非常多的元素,但在MyBatis 3 中有了許多的改進(jìn),現(xiàn)在只剩下差不多二分之一的元素。MyBatis使用了基于強(qiáng)大的OGNL表達(dá)式來(lái)消除了大部分元素。