Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在同一PL/SQL查询中选择和更新_Java_Multithreading_Oracle_Plsql_Ibatis - Fatal编程技术网

Java 在同一PL/SQL查询中选择和更新

Java 在同一PL/SQL查询中选择和更新,java,multithreading,oracle,plsql,ibatis,Java,Multithreading,Oracle,Plsql,Ibatis,我在Java中有一个生产者线程,每n毫秒从Oracle表中提取一个项目。 当前的实现依赖于Java时间戳来检索数据,并且不再重新检索数据 我的目标是摆脱时间戳模式,直接更新从数据库中提取的相同项 是否有一种方法可以选择一组项目并同时更新它们以将其标记为“正在处理” 如果不是,依赖IN子句的单独更新查询是否会对性能造成重大影响? 我尝试使用一个临时表来实现这个目的,但我发现性能受到了严重影响 不知道它是否有用,但应用程序正在使用iBatis。如果您使用的是oracle 10g或更高版本,则可以使用

我在Java中有一个生产者线程,每n毫秒从Oracle表中提取一个项目。 当前的实现依赖于Java时间戳来检索数据,并且不再重新检索数据

我的目标是摆脱时间戳模式,直接更新从数据库中提取的相同项

是否有一种方法可以选择一组项目并同时更新它们以将其标记为“正在处理”

如果不是,依赖IN子句的单独更新查询是否会对性能造成重大影响? 我尝试使用一个临时表来实现这个目的,但我发现性能受到了严重影响


不知道它是否有用,但应用程序正在使用iBatis。

如果您使用的是oracle 10g或更高版本,则可以使用update语句的RETURNING子句。如果希望检索多行,可以使用大容量收集语句。
这里是一些例子的链接;

如果您使用的是oracle 10g或更高版本,则可以使用update语句的RETURNING子句。如果希望检索多行,可以使用大容量收集语句。
这里是一些例子的链接;

由于oracle 10g有用于更新语句的RETURNING子句,但我确信它们可以用于多行因为oracle 10g有用于更新语句的RETURNING子句,但我确信它们可以用于多行。关于如何与iBatis/myBatis一起使用有什么想法吗?仍然找不到一种方法来与JDBC交流批量收集感谢看起来很整洁。关于如何使用iBatis/myBatis有什么想法吗?仍然找不到与JDBC通信批量收集的方法