posts - 122,  comments - 25,  trackbacks - 0

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

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

          <!-- 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 閱讀(486) 評論(0)  編輯  收藏 所屬分類: java 開發(fā)
          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 德令哈市| 桓台县| 公安县| 高阳县| 武安市| 钟祥市| 屏山县| 枣强县| 交口县| 敖汉旗| 鹤岗市| 宁夏| 海晏县| 密云县| 裕民县| 麻江县| 光山县| 赣州市| 尼勒克县| 铜川市| 桐梓县| 罗源县| 深水埗区| 丹棱县| 南京市| 秦安县| 怀宁县| 台东县| 襄城县| 宁南县| 双江| 通化市| 无棣县| 福贡县| 平顺县| 太和县| 林口县| 芜湖市| 兰西县| 怀安县| 浪卡子县|