java - 将数据从 Oracle 存储过程传递到 Java

标签 java oracle stored-procedures object sys-refcursor

我们将为基于 Oracle 数据库的大型系统编写一个新的 Web 界面。所有业务规则都已编码在 PL/SQL 存储过程中,我们希望重用尽可能多的代码。我们将编写一些新的存储过程,它们将结合现有的业务规则并返回最终结果数据集。

我们希望在数据库级别执行此操作以避免 java-db 往返。接口(interface)层将用Java编写(我们希望使用GWT),因此我们需要一种将数据从Oracle存储过程传递到Java服务端的方法。数据可以是例如特定项目的一组属性或满足特定条件的项目列表。 有人会推荐一种更好的方法吗?

我们正在考虑以下两种情况之一:

  • passing objects and lists of objects (DB object types defined on the schema level)

  • passing a sys_refcursor

我们验证了这两种方法都是“可行的”,问题更多的是关于设计决策、最佳实践、可能的维护问题、灵活性等。

如果有任何提示,我将不胜感激。

最佳答案

我建议坚持使用具有明确定义的键的引用游标(java 开发人员和 pl/sql 开发人员双方都同意)。这在将来更容易扩展,如果需要,您可以轻松地将 refcursor 转换为 hashmap,然后使用 apache bean utils 将 hashmap 转换为 POJO。我正在开发一个大型电信项目,该项目有多种方法可以解决这个问题,而 refcursor 似乎最终是最好的。

关于java - 将数据从 Oracle 存储过程传递到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414081/

相关文章:

java - JPA 软删除存储库 + 审核

java - 如何为所有 Activity 建立一个共享线程?

database - 需要帮助在 oracle 中为特定 xpath 的 xmltype 列建立索引

sql - Oracle 将如何处理与具有恒定结果的子查询进行比较的 where 子句条件?

sql-server - TSQL-Merge 中条件匹配时更新和插入

mysql - 过程总是返回空列

sql - 另一个内部的 EXEC 存储过程不等待完成

java - 当部分具有共同字符时如何替换字符串的多个部分?

java - 将 2 响应主体改造为自定义类

oracle - 使用存储过程组件时的插入、删除、更新