成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iBATIS教程之入門淺析

開發 后端
iBATIS教程向你介紹iBATIS的概念以及配置和常用的操作,那么通過這些的學習,希望你對iBATIS有一定的了解。

一、iBATIS教程之iBATIS介紹:

iBATIS是什么呢?相對于Hibernate和Apache OJB等“一站式”ORM解決方案而言,iBATIS是一種“半自動化”的ORM實現。
 
這個框架將讓你能夠更好的在JAVA應用中設計和實現實體層。這個框架有兩個主要的組成部分,一個是SQL Maps,另一個是Data Access Objects。另外還包括一些可能很有用的工具。

 SQL Maps:

Sql Maps是這個框架中最激動人心的部分,它是整個iBATIS Database Layer的核心價值所在。通過使用Sql Maps你可以顯著的節約數據庫操作的代碼量。SQL Maps使用一個簡單的XML文件來實現從javaBean到SQL statements的映射。跟其他的框架或者對象映射工具相比,SQL Maps最大的優勢是簡單。它需要學習的東西很少,在連接表或復雜查詢時也不需要復雜的scheme(怎么翻complex scheme?),使用SQL Maps, 你可以自由的使用SQL語句。

Data Access Objects (DAO)

當我們開發靈活的JAVA應用時,有一個好主意就是通過一個通用API層把實體操作的細節封裝起來。Data Access Objects允許你通過一個簡單接口的來操作數據,從而隱藏了實現的細節。使用DAO,你可以動態配置你的應用程序來訪問不同的實體存儲機制。如果你有 一個復雜的應用需要用到幾個不同的數據庫,DAO可以讓你建立一個一致的API,讓系統的其他部分來調用。

Utilities

iBATIS Database Layer包含一系列的有用的工具,比如SimpleDataSource,JDBC DataSource 2.0(也包括3.0)的一個輕量級實現。ScriptRunner也提供了從單元測試到自動發布的數據庫準備工作。

工作流程:

SQL Maps提供一個簡單的框架,通過XML描述來映射JAVABeans,MAP implementations甚至原始類型的包裝(String,Integer等)到JDBC PreparedStatement。想法很簡單,基本的步驟如下:

1) 提供一個對象作為參數(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) 執行這個映射的statement,這一步是魔術發生的地方。SQL Maps框架將建立一個PreparedStatement實例(instance),使用前面提供的對象的參數,執行statement,然后從ResultSet中建立一個返回對象。

3) 如果是Update,則返回有多少行修改了,如果是查詢,則返回一個對象或者對象的集合。跟參數一樣,返回對象也可以是一個JAVABEAN,MAP或者一個primitive type wrapper。

二、iBATIS教程之配置文件的使用:

SQL Map的配置文件。這個文件是SQL Map實現的根配置,這不是本總結所要具體描述的。

配置文件是XML文件,我們用它來配置屬性,JDBC DataSources 和 SQL Maps。它給我們一個便利的地方可以集中配置不同的DataSource。這個框架支持iBATIS SimpleDataSource, Jakarta DBCP (Commons),以及其他任何可以通過JNDI context來訪問的DataSource。我們在以后將詳細討論這個問題。現在我們用Jakarta DBCP,結構很簡單,上面這個例子,它的配置文件如下。

<properties>元素:

這SQL Map中的<properties>元素支持SQL Map XML配置文件。配置文件里的元素符合Data Map規則。

<properties>所應用的文件里的元素必須和<datasource>里的元素相對應。下面是SqlMapConfigExample.properties文件的內容。里面的元素和<datasource>里的元素相對應。

<settings>元素

maxRequests:在同一時間內能執行SQL語句的次數

maxSession:在同一時間內能起作用的Session數

maxTransaction:在同一時間內能執行的事務。

statementCacheSize:緩沖區的大小

三、iBATIS教程之操作方法介紹:

注意:本總結適合有使用開發iBATIS基礎的人員參考。由于本人的能力有限,不足之處請大家指出。

1. statement支持元素及支持的屬性:

1.1 ID

ID屬性是必須的,它表示這個語句的名稱,它在整個<SqlMap>元素內唯一的。在代碼通過ID來引用相關語句。

1.2 parameterMap

parameterMap屬性定義了一個有序的值列表,分別有序的對應了標準參數化的SQL語句中的?占位符。
 
1.3 parameterClass

在沒有指明parameterMap屬性的情況下,你可以指定parameterClass屬性方法來替代parameterMap屬性。parameterClass屬性的值可以使用類型的別名或者類型(類)全稱

1.4 resultMap

resultMap可以讓你控制你如何讓數據從查詢結果(ResultMap)中提取出來存入java對象中。并且可以定義如何將字段映射到java bean的屬性里。如下圖:

1.5 resultClass

在resultMap屬性沒有指定的情況下,可以采用resultClass方式,resultClass的屬性值可采用類型別名或者類型(Class)全稱的方式。指定的類將根據數據庫的元數據自動的映射到查詢結果的字段值中。

2. ParameterMap元素屬性

2.1 ID

ID屬性是必須的,它提供了<parameterMap>對元素Data Map里的唯一表示符

2.2 Class

Class屬性是可選的,Class屬性必須是JavaBean或Map實列,Class屬

性雖是可選的,但推薦大家指定,Class屬性 可以用來驗證傳入的參數的合法性及優化查詢

3. 查詢語句

3.1 屏蔽特殊符 <![CDATA[ ]]>

3.2 語句導入 <include>,可以是語句優化

使用<include>方法,上面的語句可以寫成:

4.自增長方法:<selectKey resultClass=”int”>,不管<selectKey resultClass=”int”>處于該語句的什么部位,都先執行此自增長方法。注意:Mysql和Oracle的方法不一樣。

5. <insert>方法:

Insert方法使用parameterMap屬性,字段名要和<parameterMap>方法里的元素一一對應

6. <resultClass>屬性:

使用resultClass方法,類Person里必須id,firstName,lastName,birthDate,werghtKilograms,heightMeters這些屬性。

7. 使用xmlResultName:XML映射文件

8. 使用<parameterMap>方法:用來設置元素的屬性,其中nullValue表示缺省值

9. 如果傳入的參數只有一個,用#value#來替代傳入的參數名。如果還傳來的是字段名,則iBATIS不支持

10. 判斷傳入的參數是否存在:isNotNull,判斷傳入的參數值是否大于設定的值:isGreaterThan

11. 判斷傳入的參數是否為空:isEmpty和isNotEmply

12. 如果進行模糊查詢,使用like方法

那么iBATIS教程的入門部分就向你介紹到這里,希望上述的介紹使你對iBATIS有了一定的認識。

【編輯推薦】

  1. iBATIS快速創建應用淺析
  2. iBATIS配置淺析
  3. iBATIS測試類的詳細寫法
  4. iBATIS使用之高級查詢技術詳解
  5. iBATIS分頁源碼真相探討
責任編輯:仲衡 來源: 互聯網轉載
相關推薦

2009-07-21 14:24:46

iBATIS教程

2009-07-21 15:05:43

2009-07-21 11:12:00

iBATIS配置

2009-07-21 15:46:48

獲得output參數值iBATIS教程

2009-07-22 13:32:43

iBATIS DAO

2009-07-16 09:14:26

iBATIS DAO

2009-07-15 17:19:31

iBATIS Ecli

2009-07-17 10:32:45

iBATIS MapB

2009-07-22 10:03:11

iBATIS Resu

2009-07-20 18:00:16

iBATIS DAO事

2009-07-22 10:42:59

iBATIS Cach

2009-07-15 17:58:07

iBATIS 動態映射

2009-07-16 10:23:30

iBATIS工作原理

2009-07-16 13:08:09

iBATIS快速創建應

2009-07-22 15:21:00

iBATIS SQLM

2009-07-15 16:42:03

iBATIS讀寫CLO

2009-07-17 17:05:44

iBATIS緩存cacheModel

2009-07-22 09:44:05

iBATIS Para

2009-07-17 10:59:59

iBATIS接口

2009-07-22 15:01:01

iBATIS SQLM
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩在线高清 | 黄网站免费入口 | 91精品国产综合久久福利软件 | 毛片在线看看 | 国产精品久久久久久吹潮日韩动画 | 亚洲一区二区三 | 狠狠操狠狠干 | 成人亚洲一区 | 精品国产乱码久久久久久果冻传媒 | 性一交一乱一透一a级 | 日韩午夜在线观看 | 天堂素人约啪 | 在线中文视频 | 久久九精品 | 中文字幕在线一区二区三区 | 久久精品小视频 | 不卡一区二区在线观看 | 国产资源在线视频 | 在线看片国产 | 国产精品夜色一区二区三区 | 伊人免费视频二 | 一区二区三区视频 | 无码一区二区三区视频 | 日韩中文字幕av | 欧美日本免费 | 亚洲va欧美va人人爽午夜 | 国产美女一区二区 | 日日夜夜精品免费视频 | 久久亚洲国产精品日日av夜夜 | 欧美日韩久久精品 | 欧美在线视频网 | 免费99精品国产自在在线 | 在线三级电影 | 欧美精品1区2区3区 精品国产欧美一区二区 | jlzzjlzz国产精品久久 | 久久久久久成人 | 久久亚洲欧美日韩精品专区 | 日韩欧美亚洲 | 在线看黄免费 | 国产精品视频久久久久久 | 日日干日日 |