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以及一个简单的数据库存储过程