当前位置: 技术问答>java相关
采用容器管理的实体bean,如何处理oracle数据库自动增加的编号?
来源: 互联网 发布时间:2015-10-13
本文导语: 采用容器管理的实体bean,如何处理oracle数据库自动增加的编号问题: 我现在oracle中有一表tab_stuff和一个sequence表seq_stuff。 目的是:在向tab_stuff插入一条记录的时候,读取seq_stuff中的编号作为新记录的编号字段的值。 ...
采用容器管理的实体bean,如何处理oracle数据库自动增加的编号问题:
我现在oracle中有一表tab_stuff和一个sequence表seq_stuff。
目的是:在向tab_stuff插入一条记录的时候,读取seq_stuff中的编号作为新记录的编号字段的值。
现有stuffBean(容器管理的实体bean,映射tab_stuff),问题是调用create方法来插入一条记录的时候怎么将seq_stuff中的编号传进去?
于是我又专门写了个SeqStuffBean(session bean),其中有个方法getSeqStuff(),通过jdbc来读取当前seq_stuff中的值,然后每次调用实体bean stuffBean中的create方法之前总是先调用getSeqStuff()来获取编号。
这样的问题是每次插入一条数据,应用程序和数据库服务器都要进行两次交互(读编号,保存新的记录),如果不用容器管理的bean的话,用一条sql语句就可以解决,不用和数据库服务器进行两次交互。
请问使用容器管理的实体bean对这问题有没有好的解决方法呢?
上次有个网友告诉我用observer模式可以解决这个问题,哪有详细资料和代码示例呢?
这问题能不能考虑用触发器来实现呢?
我现在oracle中有一表tab_stuff和一个sequence表seq_stuff。
目的是:在向tab_stuff插入一条记录的时候,读取seq_stuff中的编号作为新记录的编号字段的值。
现有stuffBean(容器管理的实体bean,映射tab_stuff),问题是调用create方法来插入一条记录的时候怎么将seq_stuff中的编号传进去?
于是我又专门写了个SeqStuffBean(session bean),其中有个方法getSeqStuff(),通过jdbc来读取当前seq_stuff中的值,然后每次调用实体bean stuffBean中的create方法之前总是先调用getSeqStuff()来获取编号。
这样的问题是每次插入一条数据,应用程序和数据库服务器都要进行两次交互(读编号,保存新的记录),如果不用容器管理的bean的话,用一条sql语句就可以解决,不用和数据库服务器进行两次交互。
请问使用容器管理的实体bean对这问题有没有好的解决方法呢?
上次有个网友告诉我用observer模式可以解决这个问题,哪有详细资料和代码示例呢?
这问题能不能考虑用触发器来实现呢?
|
AMquestion
any8DataSource
AMQUESTION
questionid
QUESTIONID
content
CONTENT
answer
ANSWER
amtype
AMTYPE
amdate
AMDATE
currentseqid
CURRENTSEQID
status
STATUS
ORACLE
AMQUESTION_QUESTIONID
1
实体BEAN本身就能用序列做为主键ID,只需要在XML配置文件写上AMQUESTION_QUESTIONID这个序列名就行了
如你要的话,留下EMAIL,我给你一个完整的实体BEAN代码及它在WEBLOGIC下的三个XML配置文件,看一下就明白了.很简单的.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。