3.IBatis 其他重要特性

最後說明一下在例12.2中沒有出現、但比較重要的特性。

1.利用<insert>元素來生成自動主鍵

IBatis框架中可以利用數據庫原有的特性來生成自動主鍵。比如常見的用法:用sequence來生成主鍵的示例,這是一個預生成的主鍵。

<insert id="insertByAutoPK" parameterClass="test.sample.User">

         <selectKey resultClass="int" keyProperty="id" >

                    SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL

         </selectKey>

         insert into USER (USER_ID,USER_NAME)

         values (#id#,#userName#)

</insert>

另一常見的用法:利用identity來生成主鍵的示例,這是一個後生成的主鍵。

<insert id="insertByAutoPK" parameterClass="test.sample.User">

         insert into USER (USER_NAME)

         values (#userName#)

         <selectKey resultClass="int" keyProperty="id" >

                   SELECT @@IDENTITY AS ID

         </selectKey>

</insert>

2xmlResultName屬性來返回XML文檔

<select><statement>元素和<procedure>元素中,都可以使用xmlResultName屬性來實現將結果集寫到XML文檔的功能。

<select id="getUser"

        parameterClass="int"

        resultClass="xml"

        xmlResultName="user">

         SELECT USER_ID as id,

                USER_NAME as userName,

                USER_SEX as userSex,

         FROM USER

         WHERE USER_ID = #userId#

</select>

執行完成後,會生成如下的XML文檔。

<user>

         <id>1</id>

         <userName>RW</userName>

         <userSex>M</userSex>

</user>

可以看到,resultClass屬性被定義成了“xml”,這是必需的。xmlResultName屬性所定義的值被用作XML文檔的根元素,而select中所使用表的別名被用作了根元素的子元素。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章