在Oralce数据库中,java调用plsql
来源:互联网 发布:个人云计算怎么赚钱 编辑:程序博客网 时间:2024/05/16 18:55
针对oralce数据库
一:无返回值的存储过程:
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
java里的调用代码如下:
Class.forName("driverName");
Connection con=DriverManage.getConnection(strUrl,"username","password");
CallableStatement cs = con.prepareCall("{call schemeName.plsqlFunctionName(?,?)}");
cs.setString(1,"100");
cs.setString(2,"TestOne");
cs.execute();
二:有返回值的存储过程(非结果集)
CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS
BEGIN
SELECT I_NAME INTO PARA2 FROM TESTTB WHERE I_ID= PARA1;
END TESTB;
Class.forName("driverName");
Connection con=DriverManage.getConnection(strUrl,"username","password");
CallableStatement cs = con.prepareCall("{call schemeName.plsqlFunctionName(?,?)}");
cs.setString(1,"100");
cs.registerOutParameter(2,Types.VARCHAR);
cs.execute();
String outPutResult= cs.getString(2);
注意,这里的proc.getString(2)中的数值2并非任意的,
而是和存储过程中的out列对应的,如果out是在第一个位置,那就是proc.getString(1),
如果是第三个位置,就是proc.getString(3),当然也可以同时有多个返回值,那就是再多加几个out参数了。
三:返回值是结果集的情况:
首先,建立一个程序包:
CREATE OR REPLACE PACKAGE TEST_PACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
然后,建立存储过程:
CREATE OR REPLACE PROCEDURE TEST_PROCEDURE(test_CURSOR out TEST_PACKAGE.Test_CURSOR) IS
BEGIN
OPEN test_CURSOR FOR SELECT * FROM SCHEME_NAME.TABLE_NAME;
END TEST_PROCEDURE;
可以看出,它把游标做为一个out参数来返回值的。
java里的调用代码如下:
CallableStatement cs = con.prepareCall("{call schemeName.plsqlFunctionName(?)}");
cs.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
ResultSet rs=(ResultSet)cs.getObject(1);
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
使用存储过程的好处
相对于直接使用SQL语句,在应用程序中直接调用存储过程有以下好处:
(1)减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多。
(2)执行速度更快。有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。
(3)更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。
(4) 布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
- 在Oralce数据库中,java调用plsql
- oralce在PLsql中
- oralce java中调用过程
- plsql存储过程以及在java中调用
- Oralce PLSQL中“&”的处理。
- Oralce PLSQL中“&”的处理
- Java调用oralce函数
- 在plsql中控制调用者权限
- oralce数据库备份(java)
- EBS系统中定义配置文件在plsql中调用
- plsql连接数据库 安装 oralce 客户端 连接服务器
- oracle 在plsql中创建procedure并调用
- ADF之在代码中调用PLSQL中的PKG
- PLSQL连接ORALCE方法
- 朋友收集的在java中调用各种数据库方法
- 在JAVA中实现数据库存储过程的统一调用
- java调用PLSQL分页过程
- java调用PLSQL分页过程
- static变量
- Linux 文件排序
- CameraHardwareStub学习
- 从表中选出前n条数据
- 大端与小端
- 在Oralce数据库中,java调用plsql
- Ext.this.addEvents is not a function错误
- ListView自动滚动方法
- jsp显示数据库内容
- 基于VC++的WAV波形显示代码
- asp.net搜索数据库
- Ubuntu 10.04系统 32位机上安装编译Android2.3源码
- Error connecting to undo manager of souce file
- 要是生活也能请假