精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在Hibernate中實(shí)現(xiàn)Oracle的自動(dòng)增長(zhǎng)

開發(fā) 后端
本文介紹如何在Hibernate中實(shí)現(xiàn)Oracle的自動(dòng)增長(zhǎng)。根據(jù)hibernate的文檔,有兩種方式實(shí)現(xiàn)實(shí)體對(duì)象的主鍵自動(dòng)增長(zhǎng)。

根據(jù)hibernate的文檔,有兩種方式實(shí)現(xiàn)實(shí)體對(duì)象的主鍵自動(dòng)增長(zhǎng)。

***種:設(shè)置ID的增長(zhǎng)策略是sequence,同時(shí)指定sequence的名字,***每個(gè)表建一個(gè)sequence,此種做法就如同MS-SQL,MY-SQL中的自動(dòng)增長(zhǎng)一樣,不需要?jiǎng)?chuàng)建觸發(fā)器,具體的oracle數(shù)據(jù)庫(kù)腳本及hibernate配置文件如下:

[1]oracle數(shù)據(jù)表的創(chuàng)建腳本:

  1. CREATE TABLE DEPARTMENT (     
  2.     ID NUMBER(19,0) DEFAULT '0' NOT NULL,     
  3.     NAME VARCHAR2(255) NOT NULL,     
  4.     DESCRIPTION CLOB     
  5. );     
  6. ALTER TABLE DEPARTMENT ADD CONSTRAINT PRIMARY_0 PRIMARY KEY(ID) ENABLE;     
  7. ALTER TABLE DEPARTMENT ADD CONSTRAINT UK_DEPARTMENT_1 UNIQUE (NAME);     
  8.  
  9. CREATE SEQUENCE DEPARTMENT_ID_SEQ MINVALUE 10000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;   

創(chuàng)建DEPARTMENT表,并為DEPARTMENT表創(chuàng)建一個(gè)單獨(dú)的SEQUENCE,名字為SEQUENCE_ID_SEQ,并不需要?jiǎng)?chuàng)建觸發(fā)器。

[2]hibernate映射文件的配置:

  1. < ?xml version="1.0"?>     
  2. < !DOCTYPE hibernate-mapping PUBLIC     
  3.       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  4.           "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">     
  5. < hibernate-mapping package="com.liyanframework.demo.domain">     
  6.     < class name="Department" table="DEPARTMENT">     
  7.         < id name="id" column="ID">     
  8.             < generator class="sequence">     
  9.                 < param name="sequence">DEPARTMENT_ID_SEQ< /param>     
  10.             < /generator>     
  11.         < /id>     
  12.         < property name="name" column="NAME" type="string" />     
  13.         < property name="description" column="DESCRIPTION" type="text" />     
  14.     < /class>     
  15. < /hibernate-mapping>  

在hibernate映射文件中,對(duì)ID的生成策略選擇sequence,指定sequence的名字DEPARTMENT_ID_SEQ就可以了,當(dāng)你保存新對(duì)象的時(shí)候,hibernate會(huì)自動(dòng)取得DEPARTMENT_ID_SEQ.NEXTVAL作為新對(duì)象的ID保存到數(shù)據(jù)庫(kù),所以不需要再使用觸發(fā)器再來生成新記錄的ID。

第二種:設(shè)置ID的增長(zhǎng)策略是native,但是需要?jiǎng)?chuàng)建一個(gè)名字為hibernate_sequence(這個(gè)名字好像是hibernate默認(rèn)的 sequence名字,不創(chuàng)建會(huì)出錯(cuò)的)的全局使用的sequence,然后再對(duì)每一個(gè)表的ID生成的時(shí)候,使用觸發(fā)器,取得 hibernate_sequence.CURRVAL作為新記錄的ID,具體的oracle數(shù)據(jù)庫(kù)腳本及hibernate配置文件如下:

[1]oracle數(shù)據(jù)表的創(chuàng)建腳本:

  1. CREATE TABLE STAFF (     
  2.     ID NUMBER(19,0) DEFAULT '0' NOT NULL,     
  3.     NAME VARCHAR2(255) NOT NULL,     
  4.     AGE NUMBER(3,0) NOT NULL,     
  5.     BIRTHDAY DATE NOT NULL,     
  6.     SALARY NUMBER(10,2) NOT NULL,     
  7.     LEVELNESS FLOAT NOT NULL,     
  8.     CREATETIME TIMESTAMP NOT NULL,     
  9.     ENABLE CHAR(2) DEFAULT 'Y' NOT NULL,     
  10.     STATUS VARCHAR2(64) NOT NULL,     
  11.     DEPARTMENT_ID NUMBER(19,0)     
  12. );     
  13. ALTER TABLE STAFF ADD CONSTRAINT PRIMARY_1 PRIMARY KEY(ID) ENABLE;     
  14. ALTER TABLE STAFF ADD CONSTRAINT STAFF_IBFK_0 FOREIGN KEY(DEPARTMENT_ID) REFERENCES DEPARTMENT(ID) ENABLE;     
  15. ALTER TABLE STAFF ADD CONSTRAINT UK_STAFF_1 UNIQUE (NAME);     
  16. CREATE INDEX IDX_STAFF_STATUS ON STAFF(STATUS);     
  17.  
  18. CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 90000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;     
  19.  
  20. CREATE OR REPLACE TRIGGER STAFF_ID_TRG BEFORE INSERT ON STAFF     
  21. FOR EACH ROW     
  22. BEGIN     
  23.     IF INSERTING AND :NEW.ID IS NULL THEN     
  24.         SELECT HIBERNATE_SEQUENCE.CURRVAL INTO :NEW.ID FROM DUAL;     
  25.     END IF;     
  26. END;   

創(chuàng)建STAFF表,但是并沒有為STAFF創(chuàng)建相應(yīng)的主鍵sequence,而是創(chuàng)建了一個(gè)名字為HIBERNATE_SEQUENCE的 sequence,然后創(chuàng)建一個(gè)觸發(fā)器STAFF_ID_TRG,當(dāng)執(zhí)行INSERT操作時(shí),hibernate會(huì)先執(zhí)行一次 HIBERNATE_SEQUENCE.NEXTVAL,所以在觸發(fā)器中只需要取得HIBERNATE_SEQUENCE.CURRVAL作為新記錄的 ID。

[2]hibernate映射文件的配置:

  1. < ?xml version="1.0"?>     
  2. < !DOCTYPE hibernate-mapping PUBLIC     
  3.       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  4.           "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">     
  5. < hibernate-mapping package="com.liyanframework.demo.domain">     
  6.     < class name="Staff" table="STAFF">     
  7.         < id name="id" column="ID">     
  8.             < generator class="native" />     
  9.         < /id>     
  10.         < property name="name" column="NAME" type="string" />     
  11.         < property name="age" column="AGE" type="integer" />     
  12.         < property name="birthday" column="BIRTHDAY" type="date" />     
  13.         < property name="salary" column="SALARY" type="big_decimal" />     
  14.         < property name="level" column="LEVELNESS" type="float" />     
  15.         < property name="createTime" column="CREATETIME" type="timestamp" />     
  16.         < property name="enable" column="ENABLE" type="character" />     
  17.         < property name="status" column="STATUS" type="string" />     
  18.         < many-to-one name="department" column="DEPARTMENT_ID" class="Department" />     
  19.     < /class>     
  20. < /hibernate-mapping>  

在hibernate映射文件中,對(duì)ID的生成策略選擇native,hibernate會(huì)根據(jù)你數(shù)據(jù)庫(kù)的觸發(fā)器來生成新記錄的ID。

比較兩種做法,第二種做法也就是hibernate在代碼中,實(shí)現(xiàn)了oracle中的觸發(fā)器功能。對(duì)于不同的情況,選擇不懂的做法。如果新的系統(tǒng),新建的 oracle數(shù)據(jù)庫(kù),推薦使用***種做法,簡(jiǎn)單,容易移植到其他支持自動(dòng)增長(zhǎng)的數(shù)據(jù)庫(kù);如果是老的系統(tǒng),需要把其他數(shù)據(jù)庫(kù)轉(zhuǎn)換為oracle的,那就要用第二種了,使用native的方式,可以不改動(dòng)配置文件,兼容oracle和mysql之類帶有自動(dòng)增長(zhǎng)的數(shù)據(jù)庫(kù)。

安裝有oracle數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù),總是要?jiǎng)?chuàng)建一個(gè)主鍵ID,唯一標(biāo)示各條記錄,但oracle不支持自動(dòng)編號(hào),所以還得創(chuàng)建一個(gè)SEQUENCE(序列)語(yǔ)句如
    create sequence bign nocycle maxvalue 9999999999 start with1;//增加數(shù)據(jù)

insertintotable (ID,..) values(bign.nextval,..)

在hibernate中的映射文件可這么寫

  1. < id name="id" type="java.lang.Long" column="ID"> 
  2.          < generator class="sequence"> 
  3.               < param name="sequence">bign< /param> 
  4.          < /generator> 
  5. < /id> 

  1. < id name="id" type="java.lang.Long" column="ID"> 
  2.             < generator class="increment"> 
  3.   < /id> 

(increment 用與為long,short或者int類型生成唯一標(biāo)示。只有在沒有其他進(jìn)程忘同一張表中插入數(shù)據(jù)時(shí)才能使用。在集群下不要使用)

 

責(zé)任編輯:book05 來源: 百度博客
相關(guān)推薦

2011-03-22 10:36:39

Oracle數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng)列

2010-04-13 17:10:31

Oracle 8x

2009-06-10 09:58:32

Oracle sequHibernate

2010-03-30 12:30:45

Oracle Hibe

2010-11-16 14:15:16

oracle標(biāo)識(shí)列

2019-04-03 16:32:38

OracleNetSuite可視性

2010-05-10 14:16:50

Oracle樹結(jié)構(gòu)

2009-06-05 09:52:25

struts分頁(yè)Hibernate

2011-07-19 17:06:33

Oracle數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng)列

2009-09-25 16:57:49

Hibernate查詢

2011-05-17 14:19:28

Oracle異地數(shù)據(jù)庫(kù)自動(dòng)備份

2010-10-11 11:46:20

MySQL主鍵

2010-08-10 17:10:46

2009-05-12 10:36:38

OracleREDO恢復(fù)

2009-06-26 10:12:00

Hibernate自動(dòng)

2010-04-06 15:41:22

Oracle repo

2009-09-24 16:56:12

Hibernate S

2009-06-18 10:07:03

CriteriaHibernate

2009-06-26 16:15:04

Criteria的用法Hibernate

2009-06-17 16:08:58

Hibernate C
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

福利在线一区| 精品国产99久久久久久| 麻豆成人精品| 中文字幕亚洲欧美日韩高清| 涩多多在线观看| 金瓶狂野欧美性猛交xxxx | 成人在线视频电影| 人人爽人人爽人人片av| 欧美国产日本| 亚洲性69xxxbbb| 能看毛片的网站| 少妇一区视频| 午夜视频在线观看一区二区三区| 五月天色一区| 亚洲 美腿 欧美 偷拍| 精品一区二区三区av| 4438全国成人免费| 久久久精品99| 91精品电影| 国产亚洲一区二区在线| 国产91成人video| 成人有码视频在线播放| 青娱乐在线视频免费观看| 精品高清久久| 日韩av在线免播放器| 免费不卡av网站| 电影一区二区| 一本色道亚洲精品aⅴ| 日韩成人手机在线| 国产福利在线播放麻豆| 中文欧美字幕免费| 免费看成人午夜电影| 欧美熟妇乱码在线一区 | 中文字幕天堂av| 亚洲精品乱码日韩| 91黄视频在线| 99福利在线观看| www.综合网.com| 一区二区三区四区国产精品| 特级毛片在线免费观看| 日本中文字幕伦在线观看| 国产午夜一区二区三区| 久久亚洲综合网| 五月激情六月婷婷| 99久久精品免费看国产免费软件| 不卡视频一区二区三区| 国产成a人亚洲精v品无码| 国产麻豆精品在线| 91天堂在线视频| 国产视频手机在线| 国产一区二区剧情av在线| 国产欧美日韩精品丝袜高跟鞋| 成人免费视频国产免费| 日韩电影免费在线观看网站| 国产精品高清免费在线观看| 波多野结衣毛片| 日本午夜精品视频在线观看| 国产精品网址在线| 11024精品一区二区三区日韩| 欧美啪啪小视频| 视频二区欧美| 精品少妇一区二区三区日产乱码| 三上悠亚 电影| 66精品视频在线观看| 精品国产人成亚洲区| 无码av免费精品一区二区三区| 国偷自产av一区二区三区| 亚洲国产精品一区二区久| 一出一进一爽一粗一大视频| 西瓜成人精品人成网站| 国产一区二区三区丝袜| 多男操一女视频| 一区在线视频观看| 欧美一级片久久久久久久| 九九热最新视频| 韩国三级在线一区| 国产一区二区三区色淫影院| 精品视频一二三| 亚洲欧洲色图综合| 久久这里只有精品18| 人狥杂交一区欧美二区| 欧美性欧美巨大黑白大战| 日韩av影视大全| 欧美顶级毛片在线播放| 色先锋资源久久综合5566| 男女羞羞免费视频| 久久蜜桃精品| 97自拍视频| 免费国产在线观看| 亚洲乱码国产乱码精品精的特点| 国产人妻777人伦精品hd| 日韩三区免费| 精品sm捆绑视频| 手机看片福利视频| 韩国亚洲精品| 国产精品网站入口| 日本韩国免费观看| 国产精品日韩成人| 日日橹狠狠爱欧美超碰| 24小时成人在线视频| 精品视频中文字幕| 欧美日韩中文字幕在线观看 | 天堂av8在线| 伦理一区二区三区| 久久亚洲国产精品| 日韩不卡高清视频| 99国产欧美另类久久久精品| 亚洲欧美日韩不卡| 日韩在线影院| 精品国产乱码久久久久久久| 久久av红桃一区二区禁漫| 国产精品视频| 国产精品xxx在线观看www| av在线播放av| 日韩欧美在线一区| www.四虎精品| 综合在线一区| 国产免费一区二区三区香蕉精| 香蕉视频免费在线看| 夜夜嗨av一区二区三区网页| 色婷婷综合网站| 久久av资源| 7777免费精品视频| 亚洲第一天堂网| 自拍偷拍亚洲欧美日韩| 天天操天天爱天天爽| 一本色道久久综合亚洲精品酒店| 久久久久久高潮国产精品视| 国产人妻精品一区二区三区| 欧美激情中文字幕一区二区| 日韩一级在线免费观看| 日韩中文av| 久久免费国产视频| 亚洲黄色一级大片| 一区二区日韩av| 色黄视频免费看| 影视一区二区| 91色视频在线导航| 黄在线免费观看| 欧美猛男gaygay网站| 91网站免费入口| 久久久青草婷婷精品综合日韩| 国产一区二区精品免费| 国产精品一二三产区| 亚洲第一网中文字幕| 精品久久免费视频| av一区二区不卡| 欧美 丝袜 自拍 制服 另类| 人人精品视频| 欧美亚洲在线播放| 国产51人人成人人人人爽色哟哟 | 欧美精品videossex88| 精品人妻少妇嫩草av无码专区 | 色哟哟网站入口亚洲精品| 在线观看免费视频a| 最新高清无码专区| 日本少妇一区二区三区| 欧美日韩网址| 国外成人免费视频| 日韩pacopacomama| 日韩中文在线中文网三级| 国产农村妇女毛片精品| 亚洲综合在线免费观看| 亚洲一级av无码毛片精品| 久久成人在线| 亚洲国产综合自拍| 日韩成人在线看| 亚州精品天堂中文字幕| 欧美男男同志| 欧美久久久一区| 麻豆疯狂做受xxxx高潮视频| 99视频一区二区| 欧美精品aaaa| 欧美啪啪一区| 欧美精品成人一区二区在线观看| 成人黄色免费网站| 欧美黑人xxxⅹ高潮交| 亚洲av成人精品一区二区三区在线播放| 色哟哟欧美精品| 91资源在线播放| 国产精品亚洲第一区在线暖暖韩国| 青青青在线视频播放| 国产乱码精品一区二区亚洲| 成人午夜小视频| 手机在线观看av网站| 自拍偷拍亚洲在线| 欧美 日韩 国产 精品| 欧美日韩日本视频| 中文字幕一区二区三区手机版 | 激情视频在线播放| 国产欧美一区二区三区网站| 女王人厕视频2ⅴk| 久久一区二区三区超碰国产精品| 裸体裸乳免费看| 伊人成综合网yiren22| 91免费国产网站| 怡红院成人在线| 欧美激情在线一区| 欧美性videos| 亚洲欧美国产精品专区久久| 国产浮力第一页| 欧美影院一区二区| 自拍偷拍欧美亚洲| 亚洲精品一二三四区| 国产视频三区四区| 99国产精品国产精品毛片| 日本精品一区在线| 日韩国产欧美在线观看| 欧美亚洲精品一区二区| 五月天久久777| 欧美日韩日本网| 国产成人精品亚洲线观看| 国产精品欧美一区二区| 国内精彩免费自拍视频在线观看网址| 久久精品国产69国产精品亚洲| 看电影就来5566av视频在线播放| 欧美mv日韩mv国产网站app| ,一级淫片a看免费| 欧美日韩在线观看一区二区| www.国产一区二区| 午夜av一区二区三区| 久久久久无码国产精品| 亚洲欧美日韩电影| 精品国产大片大片大片| 国产欧美一区二区三区沐欲| 亚洲天堂视频一区| 91婷婷韩国欧美一区二区| 99久久久无码国产精品性波多| 国产精品羞羞答答xxdd| 男女视频在线观看网站| 久久99精品国产麻豆不卡| 国产情侣av自拍| 男人的天堂亚洲在线| 国产二级片在线观看| 宅男噜噜噜66一区二区| 日韩五码在线观看| 亚洲激情女人| 欧美一区二区中文字幕| 亚洲裸体俱乐部裸体舞表演av| 国产一区二区片| 狠狠综合久久| 欧美狂野激情性xxxx在线观| 国产在线不卡| 免费观看美女裸体网站| 国产日韩精品视频一区二区三区| 国产a级片网站| 国产情侣久久| 少妇人妻互换不带套| 日韩高清不卡一区二区三区| 网站一区二区三区| 久久草av在线| 久久久久久国产精品日本| 国产乱码精品一区二区三区五月婷| 99精品视频免费版的特色功能| 国产精品自拍网站| 男女性杂交内射妇女bbwxz| 99久久综合国产精品| 久久久精品人妻无码专区| 国产喷白浆一区二区三区| av片在线免费看| 玉米视频成人免费看| 日韩久久精品视频| 一本大道久久精品懂色aⅴ| 中文字幕视频二区| 日韩欧美国产午夜精品| 无码精品黑人一区二区三区 | 国产午夜精品久久久久免费视| 久久久精品免费| 草草在线视频| 国产精品夜间视频香蕉| 麻豆精品久久| 久久久福利视频| 欧美3p视频| 大陆av在线播放| 丝袜美腿一区二区三区| 欧美视频亚洲图片| 久久综合给合久久狠狠狠97色69| youjizz亚洲女人| 亚洲一区二区三区四区五区黄| 亚洲自拍一区在线观看| 欧美精品xxxxbbbb| 色欲av伊人久久大香线蕉影院| 亚洲午夜av电影| а天堂中文在线官网| 国产91精品久久久久| 国产精品天堂蜜av在线播放 | 91亚洲一区二区| 久久亚洲欧美国产精品乐播| 色偷偷www8888| 欧美日韩国产在线看| 一本一道精品欧美中文字幕| 欧美精品一区二区三区蜜臀| 福利小视频在线观看| 欧美黑人巨大精品一区二区| 素人一区二区三区| 国外成人在线视频网站| 亚洲天堂一区二区三区四区| 激情五月开心婷婷| 国产高清不卡一区二区| 国产av自拍一区| 亚洲成人777| 国产精品久久综合青草亚洲AV| 亚洲色图校园春色| 91福利在线免费| 国产日韩亚洲欧美| 精品影片在线观看的网站| 大胆欧美熟妇xx| 久久99精品久久只有精品| 久久av无码精品人妻系列试探| 一区二区三区四区在线免费观看| 真实的国产乱xxxx在线91| 日韩av最新在线| av片哪里在线观看| 国产美女搞久久| 波多野结衣一区| 国产成人精品视频免费看| 国产成人8x视频一区二区| 青青青手机在线视频| 在线观看亚洲专区| 日韩专区一区二区| 久久久久久久久综合| 日韩精品免费视频一区二区三区| 亚洲一区二区三区免费观看| 久久蜜桃资源一区二区老牛| 免费看黄色aaaaaa 片| 亚洲电影一区二区三区| 超碰人人人人人人| 操日韩av在线电影| 亚洲图片小说区| 亚洲一二区在线| 蜜臀国产一区二区三区在线播放| 成人性生交大免费看| 欧美性生交xxxxxdddd| 日本在线视频1区| 欧美亚洲国产视频小说| 欧美理伦片在线播放| 欧美成人免费在线观看视频| 99久久国产免费看| 久久黄色精品视频| 日韩毛片在线观看| 亚洲精品永久免费视频| 免费h精品视频在线播放| 美女久久一区| 色欲狠狠躁天天躁无码中文字幕| 欧美午夜精品免费| caoporn国产精品免费视频| 国产精品美女在线观看| 欧美a级片视频| 欧美又黄又嫩大片a级| 尤物av一区二区| 色综合久久久久久| 国产91成人video| 成人国产精品一级毛片视频| 九色porny自拍| 亚洲欧美激情插| 高清毛片aaaaaaaaa片| 2019中文字幕在线免费观看| 奇米狠狠一区二区三区| 黄色在线视频网| 亚洲柠檬福利资源导航| 丰满少妇被猛烈进入| 97视频在线观看免费| 精品久久久久久久久久久下田| 日韩av在线中文| 一区二区高清在线| 天堂а在线中文在线无限看推荐| 国产成人精品一区二区| 99国产**精品****| 国产黑丝在线观看| 欧美在线啊v一区| 污污片在线免费视频| 久久精品中文字幕一区二区三区| 日韩主播视频在线| 国产成人自拍网站| 亚洲精品视频久久| 北岛玲精品视频在线观看| 国产肉体ⅹxxx137大胆| 久久久国产精华| 99在线观看免费| 欧美亚洲视频一区二区| 91精品久久久久久久蜜月| fc2成人免费视频| 欧美性色aⅴ视频一区日韩精品| 日本性爱视频在线观看| 欧美大陆一区二区| 精品一区二区三区免费观看| 国产免费观看av| 久久九九精品99国产精品| 欧美一性一交| 一区二区三区国产好的精华液| 欧美视频在线观看 亚洲欧| 激情视频在线观看| 日本在线成人一区二区| 岛国一区二区在线观看| 亚洲性猛交富婆| 国内成人精品一区| 婷婷丁香综合| 亚洲精品午夜视频| 亚洲第一色中文字幕| 粉嫩一区二区三区在线观看|