MyBatis知多少(17)MyBatis和JDBC

有了MyBatis,就再也不須要編寫JDBC代碼了。像JDBCT這樣的API的確很是強大,但使用起來總難免以爲太過繁瑣。代碼清單給出了一個使用JDBC的示例。html

從這個例子中很容易看出,JDBC API會產生許多額外的開銷。儘管如此,每一行代碼又都是必不可少的,因此要減小代碼量還真不是一件容易的事情。最多也只不過是將其中的一些代碼 挪到某個實用方法中,最明顯的就是那些關閉資源(如PreparedStatement和 ResultSet)的代碼。sql

其實,若是使用MyBatis,MyBatis在後臺也是運行幾乎相同的JDBC代碼。MyBatis會獲取數據 庫鏈接,設置其參數,執行其語句,獲取執行結果,並在最後關閉全部的資源。然而,須要本身親自編寫的代碼量卻大大地減小了。代碼清單給出了使用MyBatis運行相同的SQL語句時你須要編寫的代碼。數據庫

MyBatis顯然比JDBC要精簡得多spa

 <select id="getEmployee" parameterClass="j ava•lang.Integer" resultClass="Employee">
 SELECT ID as id,
     EMPLOYEE_NUMBER  as employeeNumber, 
     FIRST_NAME   as firstName,     LAST一NAME   as lastName,     TITLE      as title FROM EMPLOYEE WHERE EMPLOYEE_NUMBER = #empNum# </select>

根本無需比較,MyBatis代碼明顯更加簡潔,更容易閱讀,所以也更容易維護。稍後會討論更多關於使用MyBatis的好處。可是如今,你最關心的多是如何用Java代碼運行以上的語句。 如前例所示,運行它僅僅須要一行簡單代碼:code

Employee emp = (Employee) sqlMap.queryForObject("getEmployee",new Integer(5));

無需多說,這行代碼會執行相應的SQL語句,設置其參數,並以一個真實的Java對象的形式做爲結果返回。SQL語句被「乾乾淨淨」地封裝在Java代碼以外的一個XML文件中。iBATIS負責 管理幕後的全部資源,其運行的實際效果與咱們以前在代碼清單中所見的JDBC代碼示例是徹底同樣的。htm

系列文章:對象

MyBatis知多少(1)blog

MyBatis知多少(2)資源

MyBatis知多少(3)get

MyBatis知多少(4)MyBatis的優點

MyBatis知多少(5)業務對象模型

MyBatis知多少(6)表現層與業務邏輯層

MyBatis知多少(7)持久層

MyBatis知多少(8)關係型數據庫

MyBatis知多少(9)不一樣類型的數據庫

MyBatis知多少(10)應用程序數據庫

MyBatis知多少(11)企業數據庫

MyBatis知多少(12)私有數據庫

MyBatis知多少(13)MyBatis如何解決數據庫的常見問題

MyBatis知多少(14)分散的數據庫系統

MyBatis知多少(15)數據模型

MyBatis知多少(16)MyBatis映射

相關文章
相關標籤/搜索