有了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