我思故我強

          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 李云澤 閱讀(1544) 評論(0)  編輯  收藏 所屬分類: ibatis


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


          網站導航:
           
          主站蜘蛛池模板: 江陵县| 三亚市| 体育| 建水县| 高要市| 吴桥县| 贡嘎县| 溧阳市| 双江| 始兴县| 江安县| 山西省| 海南省| 靖西县| 武穴市| 鄂州市| 济南市| 阿城市| 正定县| 东港市| 文化| 台南县| 佛坪县| 桐梓县| 平邑县| 辽阳县| 从江县| 靖安县| 当涂县| 庆阳市| 宜春市| 肃宁县| 红安县| 新乐市| 哈尔滨市| 昆明市| 平凉市| 盘锦市| 东宁县| 龙江县| 泰安市|