Spring、Hibernate、Struts

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            11 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

          前提:

          CREATE TABLE Booking (
            id INTEGER NOT NULL,
            date_made DATE,
            reserved_until TIMESTAMP,
            price DECIMAL(15, 2) NOT NULL,
            Purchase_id INTEGER,
            PRIMARY KEY(id))  
          
          create sequence booking_seq 
            start with 1 
            increment by 1 
            nomaxvalue;
          方法一:
          利用Spring的org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer
          OracleSequenceMaxValueIncrementer incr = 
              new OracleSequenceMaxValueIncrementer(dataSource, "booking_seq");
             
          public int getNewBookingId() {
            return incr.nextIntValue();
          }
          針對不同的數據庫Spring提供了不同的支持類。
          方法二:使用數據庫本身的觸發器
          CREATE OR REPLACE TRIGGER tib_booking BEFORE INSERT
          ON BOOKING FOR EACH ROW
          DECLARE
              integrity_error  EXCEPTION;
              errno            INTEGER;
              errmsg           CHAR(200);
              dummy            INTEGER;
              FOUND            BOOLEAN;
          BEGIN
              --  Column "ID" uses sequence booking_seq
              SELECT booking_seq.NEXTVAL INTO :NEW.ID FROM dual;
          --  Errors handling
          EXCEPTION
              WHEN integrity_error THEN
                 RAISE_APPLICATION_ERROR(errno, errmsg);
          END;
          測試:
          INSERT INTO BOOKING(date_made,price) VALUES(SYSDATE,22222);
          COMMIT;
          posted on 2005-10-14 11:24 ahgf 閱讀(5338) 評論(0)  編輯  收藏 所屬分類: Spring 、Oracle
          主站蜘蛛池模板: 新竹市| 枣强县| 阿拉善盟| 青神县| 巴东县| 扎鲁特旗| 泰兴市| 册亨县| 乌恰县| 澄江县| 陈巴尔虎旗| 平阴县| 嘉荫县| 沁源县| 宜兰市| 来宾市| 商河县| 大厂| 迭部县| 蒲城县| 金门县| 奇台县| 姚安县| 和龙市| 马龙县| 河北省| 黄梅县| 吐鲁番市| 闽清县| 沐川县| 商洛市| 禄劝| 左云县| 明光市| 广饶县| 邓州市| 广安市| 新野县| 嵊州市| 馆陶县| 陕西省|