小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Ibatis2.0使用說明(二)——配置篇(2)

 WindySky 2009-04-20
sqlMap所包含的標(biāo)簽
 
<sqlMap id="Product">
         <cacheModel id="productCache" type="LRU">
                   <flushInterval hours="24"/>
                   <property name="size" value="1000" />
         </cacheModel>
         <typeAlias alias="product" type="com.ibatis.example.Product" />
         <parameterMap id="productParam" class="product">
                   <parameter property="id"/>
         </parameterMap>
         <resultMap id="productResult" class="product">
                   <result property="id" column="PRD_ID"/>
                   <result property="description" column="PRD_DESCRIPTION"/>
         </resultMap>
         <select id="getProduct" parameterMap="productParam" resultMap="productResult" cacheModel="product-cache">
                   select * from PRODUCT where PRD_ID = ?
         </select>
</sqlMap>
 
The SQL Map XML File
( http://www./dtd/sql-map-config-2.dtd)
 
一、Mapped Statements
Mapped statements可以是任何一個SQL statement,并且可以指定輸入?yún)?shù)的map和輸出結(jié)果的map。
簡單的情況下,mapped statement可以直接指定一個類來做為輸入?yún)?shù)和輸出結(jié)果參數(shù)。mapped statement也可以使用cache model在內(nèi)存中緩沖經(jīng)常使用的數(shù)據(jù)。
 
<statement                  id="statementName"
                                     [parameterClass="some.class.Name"]
                                     [resultClass="some.class.Name"]
                                     [parameterMap="nameOfParameterMap"]
                                     [resultMap="nameOfResultMap"]
                                     [cacheModel="nameOfCache"]
>
         select * from PRODUCT where PRD_ID = [?|#propertyName#] order by [$simpleDynamic$]
</statement>
 
在上面的statement的配置中,放在[]中的配置參數(shù)是可選的,所以下面的Mapped Statement是完全合法的。
<statement id="insertTestProduct">
         insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) values (1, "Shih Tzu")
</statement>
 
下面逐一介紹各個標(biāo)簽的含義以及使用方法:
1. Statement 類型
下表中列出了所有的Statement,以及他們的屬性和所支持的特征。
 
Statement Element
  Attributes
  Child Elements
  Methods
 
<statement> id
parameterClass
resultClass
parameterMap
resultMap
cacheModel
xmlResultName All dynamic elements insert
update
delete
All query methods
<insert>
  id
parameterClass
parameterMap All dynamic elements
<selectKey> insert
update
delete
<update>
  id
parameterClass
parameterMap All dynamic elements
  insert
update
delete
<delete>
  id
parameterClass
parameterMap All dynamic elements insert
update
delete
<select>
  id
parameterClass
resultClass
parameterMap
resultMap
cacheModel All dynamic elements All query methods
<procedure>
  id
parameterClass
resultClass
parameterMap
resultMap
xmlResultName All dynamic elements insert
update
delete
All query methods
 
<statement id="statementName"
                     [parameterClass="some.class.Name"]
                     [resultClass="some.class.Name"]
                     [parameterMap="nameOfParameterMap"]
                     [resultMap="nameOfResultMap"]
                     [cacheModel="nameOfCache"]
>
       select * from PRODUCT where PRD_ID = [?|#propertyName#] order by [$simpleDynamic$]
</statement>
2. the SQL
sql語句無疑是map中最重要的組成部分,你可以使用任何的sql語句,只要你的數(shù)據(jù)庫和JDBC驅(qū)動支持就行。你也可以使用數(shù)據(jù)庫和驅(qū)動支持的任何函數(shù)。因為你是將sql語句寫在了XML文檔中,為了區(qū)別Sql中的"<>"和XML中的"<>",在寫Sql時,可以用<![CDATA[ SQL ]]>來寫。
3. 自增
很多關(guān)系型數(shù)據(jù)庫都支持主鍵的自增,SQL Map可以通過<insert>標(biāo)簽中的<selectKey>來支持自增。預(yù)生成(如Oracle)和后生成(如Sql Server)都支持,下面是例子:
 
<!—Oracle SEQUENCE Example -->
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
       <selectKey resultClass="int" keyProperty="id" >
              SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
       </selectKey>
       insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
</insert>
 
<!— Microsoft SQL Server IDENTITY Column Example -->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
       insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
       <selectKey resultClass="int" keyProperty="id" >
              SELECT @@IDENTITY AS ID
       </selectKey>
</insert>
4. 存儲過程
通過<procedure>標(biāo)簽來支持存儲過程,下面的例子顯示了如何使用帶有輸出參數(shù)的存儲過程。
<parameterMap id="swapParameters" class="map" >
       <parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
       <parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
</parameterMap>
<procedure id="swapEmailAddresses" parameterMap="swapParameters" >
       {call swap_email_address (?, ?)}
</procedure>
 
調(diào)用上面的存儲過程會在數(shù)據(jù)表的兩列間交換Email地址,而且在對應(yīng)的參數(shù)對象中的也會交換。記住:當(dāng)parameter mapping的mode為INOUT或OUT的時候,
你輸入的參數(shù)對象才會改變。很顯然,不變的參數(shù)對象也是不會改變的,比如說String對象。
 
記住:一定要使用標(biāo)準(zhǔn)的JDBC存儲過程的語法。請參見JDBC CallableStatement documentation以獲取更多信息。
本篇文章來源于 新技術(shù)天空 原文鏈接:http://www./tech/java/opensource/ibatis/2007-06-29/349998e75c13b604.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多