首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java中怎么保证准确得到刚插入oracle中的a表的一条数据的自增长id

2011-12-22 
java中如何保证准确得到刚插入oracle中的a表的一条数据的自增长idjava中如何保证准确得到刚插入oracle中的

java中如何保证准确得到刚插入oracle中的a表的一条数据的自增长id
java中如何保证准确得到刚插入oracle中的a表的一条数据的自增长id.相当于sqlserver中的@@identity

[解决办法]
oralce有自增长类型?不是一直用序列么?
[解决办法]
定义一个序列
create sequence sequ
start with 1
increment by 1
在插入的时候
insert intotable1 (id) values (sequ.nextval);
每次插入数据重复调用就行了
[解决办法]
INSERT INTO a VALUES (sq_A.nextval, '小红')
RETURNING id INTO r_id;

r_id 就是你需要的ID值
[解决办法]
Statement#getGeneratedKeys()这个方法呢?
[解决办法]

sq_A.Currval
[解决办法]
1) jdbc 你看5楼朋友回复即可,JDBC2.0以后开始支持这个特性。翻翻文档即可知道。

2) hibernate没有这个问题,你懂的。

3) ibatis 也可以在 配置映射文件的时候解决。

[code=xml]
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
<selectKey resultClass="int" keyProperty="ID">
<![CDATA[
SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
]]>
</selectKey>

<![CDATA[
INSERT INTO PRODUCT (PRD_ID,PRD_DESCRIPTION)
VALUES (#id#,#description#)
]]
</insert>
[/code]

4) JdbcTemplate 的方式和1)类似,我不记得了。看文档也可以知道。
[解决办法]
[Quote=引用:]
1) jdbc 你看5楼朋友回复即可,JDBC2.0以后开始支持这个特性。翻翻文档即可知道。

2) hibernate没有这个问题,你懂的。

3) ibatis 也可以在 配置映射文件的时候解决。

[code=xml]
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
<selectKey resultClass="int" keyProperty="ID">
<![CDATA[
SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
]]>
</selectKey>

<![CDATA[
INSERT INTO PRODUCT (PRD_ID,PRD_DESCRIPTION)
VALUES (#id#,#description#)
]]
</insert>
[/code]

4) JdbcTemplate 的方式和1)类似,我不记得了。看文档也可以知道。
[/Quote]

七楼正解~
[解决办法]
乍搞那麽複雜。。。。。

直接JDBC
select sq_worktask_content.nextval from dual;
然後獲得值以後,插入得數據直接用那個返回值做爲其中一個參數就可以了

热点排行