存储过程的调用

package dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import model.emp;
import oracle.jdbc.OracleCallableStatement;
import util.DBConn;

public class EmpDao {

Connection conn = null;
Statement statement = null;
ResultSet rs = null;
CallableStatement stmt = null;

public ArrayList<emp> empSel() throws SQLException{
ArrayList<emp> al=new ArrayList<emp>();

conn=DBConn.getConnection();
statement = conn.createStatement();
stmt = conn.prepareCall("call P_GET_PRICE(?)");

stmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
stmt.executeUpdate();
//取得结果集
rs = ((OracleCallableStatement) stmt).getCursor(1);
// 对结果进行输出
while (rs.next()) {

emp em=new emp();
em.setEMPNO(rs.getInt(1));
em.setENAME(rs.getString(2));
em.setJOB(rs.getString(3));
em.setMGR(rs.getInt(4));
al.add(em);

}

return al;
}

}

时间: 2024-11-07 12:14:33

存储过程的调用的相关文章

JAVA对存储过程的调用方法

博客分类: java java存储过程sql 一:Java如何实现对存储过程的调用:   A:不带输出参数的   ---------------不带输出参数的----------------------------------create procedure getsum@n int =0<--此处为参数-->asdeclare @sum int<--定义变量-->declare @i intset @sum=0set @i=0while @i<[email protecte

JDBC对MySQL数据库存储过程的调用

一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完毕特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中.用户通过指定存储过程的名字并给出參数(假设该存储过程带有參数)来运行它. 2.与一般SQL语句相比.使用存储过程有哪些长处.有哪些缺点 长处: 1).降低了脚本的运行环节,缩短了获取数据的时间.存储过程仅仅在创建的时进行编译,在调用使用的时候直接运行.不需再次编译:而一般SQL语句每次运行前都须要编译

JDBC存储过程的调用

一. JDBC存储过程的调用 (1)存储过程是用SQL语句和控制流语句等编写的一段程序代码,在创建时已被编译成机器代码并存储在数据库中供客户端调用. 存储过程有以下优点: 1.所生成的机器代码被永久存储在数据库中,客户端调用时不需要重新编译,执行起来效率要高一些. 2.存储过程的网络使用效率比等效的SQL 语句要高. (2)JDBC通过java.sql.CallableStatement接口调用数据库服务器中的存储过程: (3)CallableStatement接口继承了PreparedStat

在 SQL Server 的存储过程中调用 Web 服务

介绍 一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务. 在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数. Step 1 首先我们在 Visual Studio 中创建一个 Web 服务项目: Step 2 接下来在服务中添加我们需要的方法,在这里我们创建 6 个方法,分别是 Greet (string Param1) ,HelloWord() , Add, subtract, 和 Divide (Num

ADO.NET之存储过程的调用

要执行存储过程就必须连接到数据库 代码如下: string source = "server=(local) \\SQLEXPRESS;integrated security=SSPI;database=Student"; SqlConnection con = new SqlConnection(source);//建立一个连接 con.Open();//打开数据库 if (con.State == ConnectionState.Open)//ConnectionState为枚举值

Java对存储过程的调用方法 --转载

一.Java如何实现对存储过程的调用: A:不带输出参数的 create procedure getsum @n int =0<--此处为参数--> as declare @sum int<--定义变量--> declare @i int set @sum=0 set @i=0 while @i<=@n begin set @sum=@sum+@i set @i=@i+1 end print 'the sum is '+ltrim(rtrim(str(@sum))) 在SQL

oracle创建函数和调用存储过程和调用函数的例子(区别)

创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; --创建函数 create or replace function func (dno number) return number is t_max number; begin select max(sal) into t_max from emp t where deptno = dno; ret

Oracle 10g实现存储过程异步调用

DBMS_JOB是什么?DBMS_JOB是Oracle数据库提供的专家程序包的一个.主要用来在后台运行程序,是数据库中一个极好的工具. 可用于自动调整调度例程任务,例如分析数据表,执行一些归档操作,清理草稿表等等.使用语法说明.使用DBMS_JOB主例程是SUBMIT例程, 对SUBMIT例程中的各变量含义说明:JOB: 一个作业标识符,由系统来分配(OUT参数).WHAT: 将要运行的SQL文本,必须是有效的PL/SQL语句或一段代码. 例如: 运行存储过程P,可以传递字符串P;(包括分号)给

Sql分页存储过程及调用

Alter Proc P_Page( @TblName varchar(200), --表名 @PageSize int, --每页显示条数 @PageIndex int = 1, --页面索引(页码) @strGetFields varchar(1000)='*', --无传入值,则搜索所有列 @OrderType int = 0, --是否倒序(0=否,1=是) @FldName varchar(100), --以什么条件进行倒叙 @StrWhere varchar(2000), --查询条

oracle 存储过程中调用存储过程

//用exec调用存储过程. 一个带参数的存储过程.SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (2 p_user_name VARCHAR23 ) AS4 BEGIN5 dbms_output.put_line('Hello ' || p_user_name || '!');6 END HelloWorld1;7 / Procedure created. SQL> CREATE OR REPLACE PROCEDURE CallHelloWorl