ADF之在代码中调用PLSQL中的PKG
来源:互联网 发布:淘宝新手卖家交流群 编辑:程序博客网 时间:2024/06/06 13:09
如果想调用PLSQL中的PKG,则首先要在代码中连接到数据库中,以下提供两种连接方式:JDBC
和JNDI
关于这两种对数据库连接的区别,可见http://www.cnblogs.com/panjun-Donet/articles/1182204.html
JDBC连接数据库
public Connection getJDBCConnection() { try { Connection conn = null; Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("URL", "UserName", "Password"); return conn; } catch (Exception e) { e.printStackTrace(); return null; } }
JNDI连接数据库
public Connection getJNDIConnection() { try { Connection conn = null; InitialContext ctx = new InitialContext(); if (ctx != null) { Object o = ctx.lookup("DataSource Name"); DataSource ds = (DataSource)o; conn = ds.getConnection(); } return conn; } catch (Exception e) { e.printStackTrace(); } return null; }
在得到数据库的连接之后,就可以很愉快的调用数据库里面的各种资源了
如下有一个PKG,命名为fnd_cux_pkg
,其中有一个方法insert_lookup_type
代码如下
CREATE OR REPLACE PACKAGE fnd_cux_pkg IS -- Author : 张俊强~ -- Created : 2017/8/22 10:36:41 -- Purpose : ADF调用pkg测试 /*--======================-- * 插入值列表中的Type *--======================--*/ PROCEDURE insert_lookup_type(lookup_type_p VARCHAR2, lookup_name_p VARCHAR2, lookup_desc_p VARCHAR2, module_code_p VARCHAR2); END fnd_cux_pkg;
CREATE OR REPLACE PACKAGE BODY fnd_cux_pkg IS PROCEDURE insert_lookup_type(lookup_type_p VARCHAR2, lookup_name_p VARCHAR2, lookup_desc_p VARCHAR2, module_code_p VARCHAR2) IS BEGIN INSERT INTO FND_LOOKUP_TYPES (LOOKUP_ID,LOOKUP_TYPE,LOOKUP_NAME,LOOKUP_DESC,MODULE_CODE) VALUES (FND_LOOKUP_TYPES_S.Nextval,lookup_type_p,lookup_name_p,lookup_desc_p,module_code_p); COMMIT; END insert_lookup_type;END fnd_cux_pkg;
现在要在代码中调用PKG啦
/** * 调用pkg来插入一条数据到FND_LOOKUP_TYPE表中 * */ public void onInsertLookupTypeListener(ActionEvent actionEvent) { // 1: 获取与数据库的连接 Connection conn =this.getJNDIConnection();//JDBC也可 System.out.println(conn); try { PreparedStatement pStatement = conn.prepareStatement("BEGIN fnd_cux_pkg.insert_lookup_type(?,?,?,?); END;"); pStatement.setString(1, "HR_EMP_HEIGHT"); pStatement.setString(2, "身高"); pStatement.setString(3, "身高选择"); pStatement.setString(4, "HR"); pStatement.executeUpdate(); conn.close(); } catch (SQLException e) { throw new RuntimeException("插入异常",e); } }
注:使用JDBC还是JNDI取决于AM中对于Connection Type的配置。
阅读全文
0 0
- ADF之在代码中调用PLSQL中的PKG
- ADF中调用PLSQL存储过程和函数
- ADF中调用PLSQL存储过程和函数
- ADF中调用PLSQL存储过程和函数
- ADF程序在JavaScript代码中调用后台Java程序(一)
- ADF程序在JavaScript代码中调用后台Java程序(二)
- 在Oralce数据库中,java调用plsql
- 在plsql中控制调用者权限
- 在ADF中调用带数组的存储过程
- ADF java代码中 取web.xml 中的参数
- Groovy在ADF BC中的常见用法之二
- Groovy在ADF BC中的常见用法之三
- Groovy在ADF BC中的常见用法之三
- Groovy在ADF BC中的常见用法之二
- 在adf 中渲染SQL中的点数据
- EBS系统中定义配置文件在plsql中调用
- ADF中常用的代码
- 在VB中怎样调用外部文件中的代码
- 根据先根序列创建二叉树
- PHP测试题
- ES6 箭头函数中的 this
- kotlin——从入门到放弃
- SpringMVC报错
- ADF之在代码中调用PLSQL中的PKG
- 动态字节数组的转换 Tbytes String、ANSIString及TBytes之间的转换
- Excel函数 Get.CELL的使用方法介绍
- D
- cc2530协议栈添加周期性任务
- 学习React Native必看的几个开源项目
- 01:Hello, World!
- windows 自动更新关闭
- 【hpu oj 1286: Number of numbers && 南阳 oj 85 有趣的数 && HDU 1597】 [思维]