Apache DBUtils - 存储过程

Posted

技术标签:

【中文标题】Apache DBUtils - 存储过程【英文标题】:Apache DBUtils - Stored Procedure 【发布时间】:2012-02-03 06:15:50 【问题描述】:

apache dbutils 库是否可以调用oracle 存储过程?

【问题讨论】:

【参考方案1】:

是的,因为它只使用 JDBC - 你需要一个 JDBC driver for Oracle

【讨论】:

CallableStatements 的 API 调用是什么?我在 dbUtils 源代码中没有看到 CallableStatement 用法。 它根本不处理语句,它对你隐藏了 - 如果你需要 CallableStatements 使用普通的 JDBC 来调用 - 尽管 ResultSetHandler 仍然可以使用 谢谢马克,但由于调用存储过程需要 CallableStatement dbutils 不支持吗?【参考方案2】:

是的:

QueryRunner run = JDBCConnectionFactory.getQueryRunner(database);
Connection conn = run.getDataSource().getConnection();
CallableStatement cs = conn.prepareCall("CALL procName()");
ResultSet rs = cs.executeQuery();
JongoResultSetHandler handler = new JongoResultSetHandler(true);
return handler.handle(rs);

这里我使用 QueryRunner 实例来获取它的连接,因为它是由 DBUtils 管理的。考虑关闭连接、异常处理等。

希望这会有所帮助。

【讨论】:

简而言之,这是不可能的,因为没有一个AbstractQueryRunner 实现不支持存储过程调用。

以上是关于Apache DBUtils - 存储过程的主要内容,如果未能解决你的问题,请参考以下文章

数据库基础_JDBC[5]_Dbutil以及一个简单的数据库存储过程

如何使用apache气流调度谷歌云bigquery存储过程

PHP Apache 在执行存储过程时崩溃

练习java jdcb 用apache dbutils 的一些思考

mybatis 调用存储过程

mybatis查找typeHandler过程分析