ADF中调用PLSQL存储过程和函数
来源:互联网 发布:单片机使用教程 编辑:程序博客网 时间:2024/05/18 02:38
下面是从 ADF guide 中总结的一段调用 PLSQL 存储过程和函数的方法,仅供参考。
1 ,调用没有参数的存储过程
可以使用 executeCommand () 函数,在 AM 的实现类中可以这样来使用:
getDBTransaction().executeCommand("begin devguidepkg.proc_with_no_args; end;");
2 ,调用只有输入参数的存储过程
可以使用 getDBTransaction 提供的 createPreparedStatement 来创建 PreparedStatement 对象,使用示例:
getDBTransaction().createPreparedStatement("begin "+stmt+";end;",0);
3 ,调用只有输入参数的存储函数
可以使用 getDBTransaction 提供的 createCallableStatement 来创建 CallableStatement 对象,使用示例:
getDBTransaction().createCallableStatement("begin ? := "+stmt+";end;",0);
4 ,其他情况
调用既有输入参数又有输出参数的存储过程或函数可以使用 CallableStatement ,使用方法和 3 相同。
5 ,调用存储过程
操作流程:
1) 创建PreparedStatement
2) 设置输入输出参数
3) 执行查询
4) 关闭语句链接
- void callStoredProcedure(String stmt, Object[] bindVars) {
- PreparedStatement st = null;
- try {
- // 1. Create a JDBC PreparedStatement for
- st = getDBTransaction().createPreparedStatement("begin "+stmt+";end;",0);
- if (bindVars != null) {
- // 2. Loop over values for the bind variables passed in, if any
- for (int z = 0; z < bindVars.length; z++) {
- // 3. Set the value of each bind variable in the statement
- st.setObject(z + 1, bindVars[z]);
- }
- }
- // 4. Execute the statement
- st.executeUpdate();
- }
- catch (SQLException e) {
- throw new JboException(e);
- }
- finally {
- if (st != null) {
- try {
- // 5. Close the statement
- st.close();
- }
- catch (SQLException e) {}
- }
- }
- }
5 ,注意点:
1) 数据库连接占用数据库资源,务必在finally 语句中关闭数据库连接。
2) 对于在执行过程中发生的错误要throw 出来,否则会增加调试时寻找异常(错误)的难度。
3) 执行查询方法execute, executeQuery, executeUpdate 的区别:
executeUpdate 用于执行带有INSERT/UPDATE/DELETE 操作的语句
executeQuery 用于执行带有查询操作的语句
execute 用于执行任意类型的SQL 语句
- ADF中调用PLSQL存储过程和函数
- ADF中调用PLSQL存储过程和函数
- ADF中调用PLSQL存储过程和函数
- OAF中调用plsql函数和存储过程
- 在 PLSQL 中调试 存储过程和存储函数
- sqlplus中调用plsql存储过程
- PLSQL 存储过程调用和执行
- oracle PLSQL创建和调用存储过程
- ADF 后台调用 存储过程
- plsql 调用存储过程
- MyBatis中调用存储过程和函数
- 在ADF中调用带数组的存储过程
- PLSQL导出函数和存储过程
- oracle--在java中调用存储过程和存储函数
- 在应用程序中调用Oracle存储过程和存储函数
- plsql存储过程的调用
- plsql-shell调用存储过程
- plsql 和 Navicat 创建和调用存储过程的区别
- mmap的真正作用
- 关于一些对servlet的认识和了解
- vcdsys错误解决
- Project manage_maven3安装,配置
- 面试心得(简历书写)
- ADF中调用PLSQL存储过程和函数
- UVA - 10118 Free Candies
- 网络赛长春赛区1004 数论,概率
- JSF控件的immediate属性和页面生命周期
- Struts2与OGNL
- java登录界面
- HDU 4081 Qin Shi Huang's National Road System 最小生成树变形
- 2013年9月28号
- [C语言]菜鸟的一些理解-指针