posts - 122,  comments - 25,  trackbacks - 0

          對于任何數據庫來說,提供唯一標識數據表中一行記錄的能力是至關重要的。幾乎所有數據庫都提供了為新添加的行自動生成主鍵的方法。這樣再操作數據庫的時候比較方便,但它也帶來了一個問題,如果我們需要知道新生成的主鍵值該怎么辦?

          有的數據庫供應商是預先生成(pre-generate)主鍵的(如OraclePostgreSQL),有的則是事后生成(post-generate)的(如SQL ServerMySQL)。不管是哪種方式,我們都可以使用<selectKey>節點來獲取<insert>語句所產生的主鍵。下面的例子演示了這兩種方式下的做法:

          <!-- Oracle SEQUENCE Example using .NET 1.1 System.Data.OracleClient -->
          <insert id="insertProduct-ORACLE" parameterClass="product">
              
          <selectKey resultClass="int" type="pre" property="Id" >
                  SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL
              
          </selectKey>
              insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
          </insert>

          <!-- Microsoft SQL Server IDENTITY Column Example -->
          <insert id="insertProduct-MSSQL" parameterClass="product">
              insert into PRODUCT (PRD_DESCRIPTION)
              values (#description#)
              
          <selectKey resultClass="int" type="post" property="id" >
                  select @@IDENTITY as value
              
          </selectKey>
          </insert>

          <!-- MySQL Example -->
          <insert id="insertProduct-MYSQL" parameterClass="product">
              insert into PRODUCT (PRD_DESCRIPTION)
              values (#description#)
              
          <selectKey resultClass="int" type="post" property="id" >
                  select LAST_INSERT_ID() as value
              
          </selectKey>
          </insert>

          posted on 2008-08-01 14:44 josson 閱讀(479) 評論(0)  編輯  收藏 所屬分類: java 開發
          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 龙井市| 八宿县| 丹寨县| 潮州市| 雷州市| 奉贤区| 福贡县| 镇坪县| 林口县| 新营市| 吴堡县| 汉寿县| 鄂尔多斯市| 定兴县| 黄龙县| 资溪县| 泊头市| 冷水江市| 朔州市| 高清| 颍上县| 鲜城| 阿拉善右旗| 佛学| 安达市| 防城港市| 武强县| 石台县| 登封市| 新田县| 元谋县| 汉中市| 嘉义市| 关岭| 大埔区| 湟中县| 海口市| 南康市| 通州区| 隆子县| 湖南省|