在JAVA中怎么调用带参数的存储过程啊??
发布网友
发布时间:2022-04-26 19:04
我来回答
共2个回答
热心网友
时间:2022-04-08 23:00
JDBC调用存储过程: CallableStatement
在Java里面调用存储过程,写法那是相当的固定:
Class.forName(....
Connection conn = DriverManager.getConnection(....
/**
*p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替
*其余地方写法固定
*/
CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");
/**
*告诉JDBC,这些个参数,哪些是输出参数,输出参数的类型用java.sql.Types来指定
*下面的意思是,第3个?和第4个?是输出参数,类型是INTEGER的
*Types后面具体写什么类型,得看你的存储过程参数怎么定义的
*/
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);
/**
*在我这里第1个?和第2个?是输入参数,第3个是输出参数,第4个既输入又输出
*下面是设置他们的值,第一个设为3,第二个设为4,第4个设置为5
*没设第3个,因为它是输出参数
*/
cstmt.setInt(1, 3);
cstmt.setInt(2, 4);
cstmt.setInt(4, 5);
//执行
cstmt.execute();
//把第3个参数的值当成int类型拿出来
int three = cstmt.getInt(3);
System.out.println(three);
//把第4个参数的值当成int类型拿出来
int four = cstmt.getInt(4);
System.out.println(four);
//用完别忘给人家关了,后开的先关
cstmt.close();
conn.close();
JDBC调用存储过程,掌握这一个程序足够了.
以下是上面程序使用的存储过程的代码,我用的是Oracle数据库,不过不论是什么数据库,对于你的程序,JDBC这一端写法都是一样的.
create or replace procere p
(v_a in number,v_b number,v_ret out number,v_temp in out number)
is
begin
if(v_a > v_b) then
v_ret := v_a;
else
v_ret := v_b;
end if;
v_temp := v_temp + 1;
end;
热心网友
时间:2022-04-09 00:18
String sql="select * from userinfo where userName=? and userPass=?";
s=con.prepareStatement(sql);
s.setString(1, username);
s.setString(2, password);
rs=s.executeQuery();
在JAVA中怎么调用带参数的存储过程啊??
Connection conn = DriverManager.getConnection(.../ p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替 其余地方写法固定 / CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");/ 告诉JDBC,这些个参数,哪些是输出参数,输出参数的类型用java.sql.Types来指定 ...
Java中,怎样调用带输出参数的存储过程?
1、创建带输出参数的存储过程 如: 在查询分析器中执行declare @mg nvarchar(100)exec proc_CSCO_SalesFctByStore 100,200,'name',@mg output print @mg 在Java中调用import java.sql.*;public class Test{ public static void main(String args[]) throws Exception {//加载驱动DriverManager.regis...
java中如何调用数据库的存储过程
Java调用存储过程的方法是通过调用Connection的实例方法prepareCall,prepareCall方法返回CallableStatement对象用于填充存储过程的参数。prepareCall方法形参是调用存储过程的sql语句,此参数的语法格式如下:{call storedProcedureName(parameter-list)}其中,storedProcedureName是存储过程名称,parameter-list是存储过程参数...
Java怎么调用Oracle输入参数为一个对象的存储过程(是输入参数,不是输出...
在存储中定义一个 参数 为output,将存储过程中得到的值赋给这个参数,其他存储可以调 ---联机丛书 使用 OUTPUT 参数 OUTPUT 参数允许外部过程、批处理或多条 Transact-SQL 语句访问在过程执行期间设置的某个值。下面的示例创建一个存储过程 (titles_sum),并使用一个可选的输入参数和一个输出参数。首...
怎样在项目中使用存储过程
作为示例,下述代码先注册 OUT 参数,执行由 cstmt 所调用的已储存过程,然后检索在 OUT 参数中返回的值。方法 getByte 从第一个 OUT 参数中取出一个 Java 字节,而 getBigDecimal 从第二个 OUT 参数中取出一个 BigDecimal 对象(小数点后面带三位数):CallableStatement cstmt = con.prepareCall("{...
java 调用存储过程
调用存储过程得直接取得Connetion对象,用到CallableStatement这个对象,Connetion中有个方法:CallableStatement prepareCall(String sql) 。其中的sql就是存储过程调用时字符串形式:{call <procedure-name>[(<arg1>,<arg2>, ...)]},构造完成后就可以用Connetion执行了 ...
java语言调用mysql存储过程(需要获取到存储过程中的out 变量),_百度...
Types.OTHER,可以使用此方法来读取特定于数据库的抽象数据类型。参数:parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推 返回:保存 OUT 参数值的 java.lang.Object 抛出:SQLException - 如果 parameterIndex 无效;如果发生数据库访问错误,或者在关闭的 CallableStatement 上调用此方法 ...
如何执行存储过程
打开plsql,输入登录名和密码进行登录。登录成功后,进入命令窗口。在窗口里输入存储过程,例子所示 输入setserveroutputon;按回车键 用execute存储过程名(参数)。执行存储过程。或者也可以用 begin 存储过程名(参数)。end。在其他代码中,比如java里也可以调用存储过程 ...
JAVA调用存储过程的问题,指定过多的参数
你的参数有多少个,你为甚么要弄那么多参数。如果确实过多,就把所有的参数拼接到一个字符串里面,然后当一个参数传递进去。最后在存储过程里面给解析出来。
java调用存储过程遇到的问题
作为示例,下述代码先注册 OUT 参数,执行由 cstmt 所调用的已储存过程,然后检索在 OUT 参数中返回的值。方法 getByte 从第一个 OUT 参数中取出一个 Java 字节,而 getBigDecimal 从第二个 OUT 参数中取出一个 BigDecimal 对象(小数点后面带三位数):CallableStatement cstmt = con.prepareCall("{...