公司项目中强制使用存储过程,顺势学习下如何在程序中调用过程,借javaeye点地方保存点代码片段..........
创建过程:
--创建一张测试的表
create table t1(a number,b number ,c number,d number);
--创建一个包定义游标类型
create or replace package types
as
type cursorType is ref cursor;
end;
--创建存储过程
create or replace procedure getemps( io_cursor in out types.cursorType)
as
begin
open io_cursor for select * from t1;
end;
借用Javaeye的地方保存点代码:
package org.sf.proc;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Types;
import oracle.jdbc.driver.OracleTypes;
public class Callprocedure {
public static Connection getConnection() throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@172.16.29.39:1521:ORA10G", "fjh", "fjh");
return con;
}
public static void callProcedure(Connection con) throws Exception {
CallableStatement pstm = con.prepareCall("{call GETEMPS(?)}");
pstm.registerOutParameter(1, OracleTypes.CURSOR);
//pstm.setString(2, "30");
pstm.execute();
ResultSet rs = (ResultSet) pstm.getObject(1);
// while (rs.next()) {
// for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
// System.out.print(rs.getString(i) + " ");
// }
// System.out.println();
// }
pstm.close();
rs.close();
}
public static void callSQL(Connection con) throws Exception {
PreparedStatement ps=con.prepareStatement("select * from t1");
//ps.setString(1, "30");
ResultSet rs=ps.executeQuery();
// while (rs.next()) {
// for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
// System.out.print(rs.getString(i) + " ");
// }
// System.out.println();
// }
ps.close();
rs.close();
}
public static void main(String[] args) throws Exception {
Connection con=getConnection();
long s1=System.currentTimeMillis();
callProcedure(getConnection());
long e1=System.currentTimeMillis();
long s2=System.currentTimeMillis();
callSQL(getConnection());
long e2=System.currentTimeMillis();
System.out.println("过程调用耗时:"+(e1-s1));
System.out.println("SQL调用耗时:"+(e2-s2));
//test(con);
}
public static void test(Connection con) throws Exception {
PreparedStatement ps=con.prepareStatement("insert into t1 values(?,?,?,?)");
ps.setInt(1, 1);
ps.setInt(2, 2);
ps.setInt(3, 3);
ps.setInt(4, 4);
for (int i = 0; i < 50000; i++) {
ps.execute();
}
ps.close();
}
}
分享到:
相关推荐
java调用oracle存储过程返回结果集,Record,cursor参照.pdf
java调用oracle存储过程或者函数
通过实例详细介绍了用java调用oracle存储过程的方法和步骤,包括无返回值的存储过程、有返回值的存储过程(非列表)和返回列表的存储过程的编写、JAVA调用,是一个对存储过程调用的一个全面总结,对程序开发具体实际...
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载
Java调用带参数的Oracle 存储过程并返回集合,
Java调用oracle存储过程
java调用oracle存储过程实现增删改查
java调用oracle分页存储过程,存储过程保存在sql文件夹下,可以直接运行。 实现了输入表名、每页显示记录数、当前页、排序字段,返回总记录数,总页数,和结果集。
JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程
讲有关java如何调用ORACLE存储过程以及游标使用,它只包含JAVA调用ORACLE存储过程游标使用(上),还有JAVA调用ORACLE存储过程游标使用(上),
你还在为如何调用oracle中的存储过程和函数而烦恼吗,请看看该文档。
本文用一个案例系统的介绍了怎样用java调用oracle存储过程
Java调用Oracle存储过程的方法
提供JAVA调用ORACLE存储过程通用类
java调用oracle存储过程.wps java调用oracle存储过程.wps java调用oracle存储过程.wps
java调用oracle存储过程返回结果集,Record,cursor.[参考].pdf
NULL 博文链接:https://fruitking.iteye.com/blog/1447333
ibatis调用oracle存储过程分页
详细介绍如何使Java类调用Oracle中的存储过程。