陌上花開

          遇高山,我御風(fēng)而翔,逢江河,我凌波微波

             :: 首頁 :: 新隨筆 :: 聯(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)機制為在當前應(yīng)用實例中維持一個變量,以保存著當前的最大值,之后每次需要生成主鍵的時候?qū)⒋酥导?作為主鍵,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 閱讀(1336) 評論(0)  編輯  收藏 所屬分類: oracle

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


          網(wǎng)站導(dǎo)航:
           
          我要啦免费统计
          主站蜘蛛池模板: 保康县| 通海县| 岚皋县| 泰和县| 皋兰县| 晴隆县| 漳州市| 浮山县| 峡江县| 彭山县| 瑞安市| 白玉县| 宜兰市| 绥化市| 确山县| 怀化市| 铜川市| 麻栗坡县| 诸暨市| 安福县| 承德市| 临西县| 三明市| 衢州市| 康马县| 拉孜县| 大田县| 水城县| 乡城县| 曲沃县| 会泽县| 绥滨县| 突泉县| 刚察县| 新干县| 绿春县| 兰州市| 平利县| 玛多县| 丰原市| 新源县|