我思故我強

          iBATIS自動生成主鍵(oracle,sqlserver,mysql)

          ?


          我們在數據庫插入一條數據的時候,經常是需要返回插入這條數據的主鍵。但是數據庫供應商之間生成主鍵的方式都不一樣。
          有些是預先生成(pre-generate)主鍵的,如Oracle和PostgreSQL;有些是事后生成(post-generate)主鍵的,如MySQL和SQL Server。但是不管是哪種方式,我們都可以用iBATIS的節點來獲取語句所產生的主鍵。
          例子如下:

          假設我的數據庫表為PRODUCT (PRD_ID,PRD_DESCRIPTION)。

          xml 代碼
          <!-- oracle Example -->
          <insert id="insertProduct-ORACLE" parameterClass="product">??
          ??? <selectKey resultClass="int" type="pre" keyProperty="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-MS-SQL" parameterClass="product">??
          ??? insert into PRODUCT (PRD_DESCRIPTION)??
          ??? values (#description#)??
          ??? <selectKey resultClass="int" type="post" keyProperty="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" keyProperty="id" >??
          ??????? select LAST_INSERT_ID() as value??
          ??? </selectKey>??
          </insert>?
          ?

          posted on 2009-01-08 17:19 李云澤 閱讀(1551) 評論(0)  編輯  收藏 所屬分類: ibatis


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 秦安县| 陆良县| 屯昌县| 宜黄县| 正安县| 新密市| 西贡区| 南平市| 深圳市| 循化| 水富县| 长丰县| 宝丰县| 博白县| 乐至县| 江北区| 荃湾区| 鄂托克前旗| 巴中市| 浠水县| 公主岭市| 华安县| 壶关县| 泾阳县| 娄底市| 灵丘县| 陆川县| 盱眙县| 马公市| 日照市| 玉田县| 大余县| 澄江县| 法库县| 商城县| 汉阴县| 望都县| 西乌珠穆沁旗| 陇西县| 凤山市| 准格尔旗|