使用JDeveloper开发WEB应用时同时使用Oracle的sequence和trigger

[i]案例:
当用户使用JDveloper进行WEB应用的时,有可能涉及到用户新建一跳记录,但该记录的ID对应数据库中的ID主键,如果我们使用的是mysql数据库的话,mysql数据库中有一种数据类型,可以当用户插入数据时,如果ID对应得值为null时,,mysql数据库会自动生成一个值,并维持该值的唯一性;但如果我们用的是oracle数据库怎么办呢??有人可能会想到用oracle的sequence和trigger,对!!在oracle数据库中,如果只是想通过oracle数据库本的功能生来维持主键字段的唯一性,那么sequence和trigger是两种不同的出来方式。

然而我们在用JDeveloper进行web开发时,我们还想实现上述功能,怎么办???
答:我们只有同时使用oracle数据库提供的sequence和trigger(我个人的理解,如果有不同的看法请通知我)。[/i]
具体实现方法如下:

[b]说明:[/b]
假设该实验中操作的表是TEST_SEQ(ID VARCHAR2(20),NAME VARCHAR2(20)); 在该表上建立的基于insert的触发器脚本如下:
create or replace trigger test_seq_trig
before insert on SEQ_TAB FOR EACH ROW
declare
begin
select TEST_SEQ.NEXTVAL into :NEW.ID from dual;--在插入一条记录前修改该记录的ID,通过sequence生成的,并且保持唯一。
end test_producter_trig;
/


1.创建EO对象(此处假设对象名称为SeqEO),主要的设置步骤是在SeqEO.xml文件的左边选择“Attributes”,然后选中对应数据库中主键的属性行(此处假设该属性是ID,即:ID属性对应的字段在数据库中是主键)。
2.点击右上方的“笔形”按钮,进入“Edit Attribute :Id”对话框,然后在右边的“Type”下拉框中选择“DBSequence”,然后再该对话框下边的“Sequence”导航中输入“Sequence Name:”对应的sequence名称,该sequence必须存在于数据库中,然后在“Start at:”框中输入该对应sequence的开始值。
3。点击本页面中的“Apply”按钮后,点击“OK”键,即可。

4.然后创建该EO对应的VO(SeqVO.xml),并把该VO加入AM中,进行debug即可。


[b]附件是具体的操作图和触发器sql脚本。[/b]

[b]方法二:
覆写EO的create方法![/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值