介紹
歡迎來到iBATIS Database Layer!這個框架將讓你能夠更好的在JAVA應用中設計和實現(xiàn)實體層。這個框架有兩個主要的組成部分,一個是SQL Maps,另一個是Data Access Objects。另外還包括一些可能很有用的工具。
SQL Maps
Sql Maps是這個框架中最激動人心的部分,它是整個iBATIS Database Layer的核心價值所在。通過使用Sql Maps你可以顯著的節(jié)約數(shù)據(jù)庫操作的代碼量。SQL Maps使用一個簡單的XML文件來實現(xiàn)從javaBean到SQL statements的映射。跟其他的框架或者對象映射工具相比,SQL Maps最大的優(yōu)勢是簡單。它需要學習的東西很少,在連接表或復雜查詢時也不需要復雜的scheme(怎么翻complex scheme?),使用SQL Maps, 你可以自由的使用SQL語句。
Data Access Objects (DAO)
當我們開發(fā)靈活的JAVA應用時,有一個好主意就是通過一個通用API層把實體操作的細節(jié)封裝起來。Data Access Objects允許你通過一個簡單接口的來操作數(shù)據(jù),從而隱藏了實現(xiàn)的細節(jié)。使用DAO,你可以動態(tài)配置你的應用程序來訪問不同的實體存儲機制。如果你有一個復雜的應用需要用到幾個不同的數(shù)據(jù)庫,DAO可以讓你建立一個一致的API,讓系統(tǒng)的其他部分來調(diào)用。
Utilities
iBATIS Database Layer包含一系列的有用的工具,比如SimpleDataSource,JDBC DataSource 2.0(也包括3.0)的一個輕量級實現(xiàn)。ScriptRunner也提供了從單元測試到自動發(fā)布的數(shù)據(jù)庫準備工作。
Examples
?跟這個框架一起有一個examples.zip,包含了一系列簡單的實例,在http://www.ibatis.com上有更多的例子,包括非常著名的Jpestore, 一個在線商店。(譯者注,藍色天空也有一系列的中文介紹和實例)
About this Document
本文介紹了iBATIS Database Layer最重要的功能,還有一些功用沒有寫出來,凡是沒有寫出來的這些,可以認為是不支持或者正在修改。這些功能可能不經(jīng)過通知就修改了,所以最好不要使用它們。本文將盡可能保持與框架同步。請確認你兩者是否匹配。
SQL Maps (com.ibatis.db.sqlmap.*)
概念
SQL Map API允許程序員很簡單的把JAVA對象映射到PreparedStatement參數(shù)或者ResultSets。SQL Maps的機制很簡單,提供一個框架,來實現(xiàn)用20%的代碼來實現(xiàn)80%JDBC的功能。
How does it work?
SQL Maps提供一個簡單的框架,通過XML描述來映射JAVABeans,MAP implementations甚至原始類型的包裝(String,Integer等)到JDBC PreparedStatement。想法很簡單,基本的步驟如下:
1)提供一個對象作為參數(shù)(either a JavaBean, Map or primitive wrapper),The parameter object will be used setting input values in an update statement, or query values in a where clause (etc.).(感覺不譯為好,你說呢?)
2)執(zhí)行這個映射的statement,這一步是魔術發(fā)生的地方。SQL Maps框架將建立一個PreparedStatement實例(instance),使用前面提供的對象的參數(shù),執(zhí)行statement,然后從ResultSet中建立一個返回對象。
3)如果是Update,則返回有多少行修改了,如果是查詢,則返回一個對象或者對象的集合。跟參數(shù)一樣,返回對象也可以是一個JAVABEAN,MAP或者一個primitive type wrapper。
流程圖如下:
|