java插入Oracle数据库,表做了自动增长列,但是数据库返回id太慢,还没返回时程序就往下走

java插入Oracle数据库,表做了自动增长列,但是数据库返回id太慢,还没返回时程序就往下走,导致后面的程序报错。数据库是集群的, 插入数据时,有时候要1分钟,在数据库中才能查出来,这个是怎么回事,有没有解决方案。
create or replace trigger test_Id_Tr
before insert on test
for each row
begin
select test_Id.nextval into :new.id from dual;
end;

第1个回答  2016-09-12
写存储过程有什么必需么,,,,,,直接使用SQL+JDBC,就会返回快 。。。。。。。。。。。。本回答被网友采纳
第2个回答  2016-09-12
加个锁试试追问

怎么加 ,能让java程序停止吗?等到返回id的时候再往下走

追答

自己搜搜资料,很多的

追问

现在发现的是 id还没返回 ,数据库还没插入数据,程序就往下走了,我想让程序停在那里,让程序拿到id后才执行。不然都是脏数据。 这个现象也不是经常有,有时候有,有时候没有。

在java中用JDBC连接oracle添加ID自增列怎么弄的
oracle数据库里面的自动增张列我以序列的形式来的,首先你要新建一个序列,然后在你要插入数据的地方,调用你新建的这个序列号,nextval是下一列数字,current是当前列的数字 例如 首先创建一个序列:CREATE sequence idauto (--创建序列)start with 1 ( --初始值从1开始)然后执行 然后你...

java项目连接oracle数据库,连的人多操作数据库会越来越慢,怎么解决
估计你oracle装在本地了吧,你机器是多大内存啊,oracle服务端是很耗内存的,如果你自己搞小项目建议用mysql吧,如果搞商用项目建议搞个大点的机器用作oracle服务端,我们开发的时候 服务端都装在单板上的,32G内存。

oracle数据库id不自动增长,用java语言怎么解决
oracle的sequence是一种自增长的值,当使用时可以根据你的需要,逐增1或者是10或者是你想的任何值。在使用序列的时候,用 emp_sequence.nextval(序列名.nextval)2、在使用Java实现的时候,一般都是从数据库中作一次查询:select (max(id)+1) id from 表 然后通过最大id+1来实现类控制id,最好的...

...插入一条信息返回当前信息的主键id 怎样写 oracle的数据库 主键序列...
有两种方法可以设置主键,一种是自增长主键,另一种就是生成唯一序列。一、自增长主键 --首先建一个表TEST create table TEST (NID int PRIMARY KEY,test1 varchar2(20),test2 varchar2(20),test3 varchar2(20),test4 varchar2(20),test5 varchar2(20))-- 再建一个序列SEQ_TEST create seque...

java连接oracle数据库java.sql.SQLException: 无效的列索引问题
这和用什么用户无关,只要能连上数据库、并且使用的用户对该表有插入权限,就没问题。现在出现的“无效的列索引的异常”,是指在语句pstmt.setString(2,str2);中,列索引2是无效的,因为sql语句中只有一个问号。PreparedStatement 对象中的 setString方法的第一个参数是列索引,这个参数的取值范围是和...

用java将一条数据插入oracle,需要查看原数据库中是否有此条记录_百度知...
需要用两个类来实现,DB类用来加载数据库驱动,建立数据库连接,Opdb类用来查询和插入数据 OPDB类我只写了测试用的main方法,需要调用DB类来做查询和插入数据的操作 OPDB.java的源码如下 public class Opdb { public static void main(String[] args) { DB db = new DB();String sql = "...

如何在oracle表中添加一列数据 ,并且自动增长?
oracle中没有自动增长,只有序列号 添加一条记录和sqlserver一样 语法:insert into table(列,列,列) values(value,value,value);如果有个自动增长列 可以用这种方法,首先创建一个序列号SEQ_Test 然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);...

java应用程序操作oracle数据库的问题
import java.sql.*;public class TextOracle_AddTemplate { public static void main(String ags[]){ add();} public static void add(){ Connection ct = null;\/\/与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果 PreparedStatement ps = null;\/\/表示预编译的 SQL 语句的对象...

java程序异常处理写入oracle数据库表中记录的基类 大家有做过的没...
一般的处理是java的异常处理写入log文件中,数据库的异常写入表中 如果要把java的异常写入表中,可以定义个专门处理异常的类,负责连接数据库并将异常信息插入表中,与普通的连接数据库没有两样的

java+oracle:项目中提交一个update语句,失败!程序无问题,sql语句也没...
在对数据库操作时、除了查询数据不需要结尾外,update delete 等语句都是需要commit的。楼主给出的图提示在等待,实际上是上一次操作数据库时 事物没有提交,而此次事物的提交必须在上一次之后,所以并非有错、而是你需要给操作语句提交事物。

相似回答
大家正在搜