陌上花開

          遇高山,我御風而翔,逢江河,我凌波微波

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
          SQL SERVER 和 ACCESS 以及 MYSQL 中, 都有一種自增字段, 通常被用來做主鍵或索引鍵, 但是 ORACLE 中,確并沒有提供這種功能 ,但我們確經(jīng)常需要這個功能,可以用以下方法解決,
          一,如果你不在集群環(huán)境下使用,并且用到了hibernate,那么可以用hibernate提供的產(chǎn)生自動增長類型主鍵的increment策略,如下
          在**.hbm.xml(hibernate映射文件)中配置如下
          <class name="com.xx.xx.Test" table="TEST">
          <id name="id" type="int" column="ID">
          //該句指定使用hibernate自帶的increment策略生成主鍵
          <generator class="increment"/>
          </id>
          <property name="uname" type="java.lang.String" column="UNAME"/>
          </class>
          這樣,在java文件中對表增加記錄時,只需添加除ID外的其他字段,然后save即可,
          注意 ,increment 實現(xiàn)機制為在當前應用實例中維持一個變量,以保存著當前的最大值,之后每次需要生成主鍵的時候將此值加1作為主鍵,increment不能在集群環(huán)境下使用,

          二,使用hibernate的sequence策略,在oracle中新建一個sequence,在hibernate中使用,如下
          在**.hbm.xml(hibernate映射文件)中配置如下
          <class name="com.xx.xx.Test" table="TEST">
          <id name="id" type="int" column="ID">
          //該句指定使用hibernate自帶的sequence策略生成主鍵 ,TEST_SEQ是在數(shù)據(jù)庫中新建的sequence的名稱
          <generator class="sequence"> 
                       <param name="sequence">TEST_SEQ</param> 
                  </generator>   
          <property name="uname" type="java.lang.String" column="UNAME"/>
          </class>
          這樣,在java文件中對表增加記錄時,只需添加除ID外的其他字段,然后save即可,

          三,以上兩種方法都是通過hibernate實現(xiàn)的,下面給出ORACLE的一種實現(xiàn)方式

           1. 建立 SEQUENCE
          CREATE [ OR REPLACE ] SEQUENCE sequence_identity START WITH initial seed INCREMENT BY step MAXVALUE upper bound [NOMAXVALUE] NOCYCLE [empty]
          2. 建立 TRIGGER
          CREATE [ OR REPLACE ] TRIGGER trigger_identity BEFORE INSERT ON table_name FOR EACH ROW BEGIN SELECT sequence_identity.NEXTVAL INTO :new.column_name FROM DUAL; END;
          這樣,在java文件中對表增加記錄時,只需添加除ID外的其他字段,然后save即可,

          posted on 2010-03-04 11:36 askzs 閱讀(1335) 評論(0)  編輯  收藏 所屬分類: oracle

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


          網(wǎng)站導航:
           
          我要啦免费统计
          主站蜘蛛池模板: 保德县| 赤峰市| 正蓝旗| 池州市| 上虞市| 葵青区| 宜良县| 齐齐哈尔市| 东莞市| 囊谦县| 河源市| 个旧市| 中阳县| 新绛县| 固安县| 密云县| 梨树县| 吉水县| 桐柏县| 浏阳市| 广州市| 东乌珠穆沁旗| 衡山县| 安远县| 黄浦区| 达日县| 台南市| 大邑县| 梅州市| 南投市| 东平县| 五大连池市| 萨嘎县| 冕宁县| 红桥区| 固镇县| 大关县| 公主岭市| 九龙坡区| 侯马市| 原平市|