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)  編輯  收藏 所屬分類: SpringOracle
          主站蜘蛛池模板: 黔江区| 周宁县| 板桥市| 遂宁市| 双柏县| 汝南县| 容城县| 得荣县| 鄂托克旗| 临沂市| 宜都市| 石柱| 大洼县| 湖口县| 驻马店市| 石林| 伊宁县| 乐山市| 会理县| 抚州市| 承德县| 炉霍县| 德保县| 汶上县| 伊春市| 建平县| 泽库县| 崇义县| 台南县| 文昌市| 忻州市| 绥阳县| 历史| 安庆市| 遂溪县| 皋兰县| 密云县| 抚远县| 锡林郭勒盟| 望奎县| 阿鲁科尔沁旗|