我们将为基于 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/