当前位置: 技术问答>java相关
请问各位大侠怎样在java中调用存储过程和接受存储过程的返回参数
来源: 互联网 发布时间:2015-07-08
本文导语: 请问各位大侠怎样在java中调用存储过程和接受存储过程的返回参数, 最好有实例和详细解释, 由于我不太懂csdn的玩法,请你们告诉我怎样给你们给分。 感激不尽,谢谢!!! | 1.无参数调...
请问各位大侠怎样在java中调用存储过程和接受存储过程的返回参数,
最好有实例和详细解释,
由于我不太懂csdn的玩法,请你们告诉我怎样给你们给分。
感激不尽,谢谢!!!
最好有实例和详细解释,
由于我不太懂csdn的玩法,请你们告诉我怎样给你们给分。
感激不尽,谢谢!!!
|
1.无参数调用方式
//Storeprocedure 为存储过程名
CallabelStatement cstm = con.prepareCall("{call Storeprocedure()}");
ResultSet rs = cstm.executeQuery();
2.有参数调用方式
//Storeprocedure 为存储过程名
CallabelStatement cstm = con.prepareCall("{call Storeprocedure(?,?)}");
//登记输出参数,根据参数类型不同而改变java.sql.Types的值
cstm.registerOutParameter(1,java.sql.Types.TINYINT);
cstm.registerOutParameter(2,java.sql.Types.DECIMAL,2);
//执行
cstm.executeUpdate();
//获取输出参数的值
byte x = cstm.getByte(1);
Numeric n = cstm.getNumeric(2,2);
//Storeprocedure 为存储过程名
CallabelStatement cstm = con.prepareCall("{call Storeprocedure()}");
ResultSet rs = cstm.executeQuery();
2.有参数调用方式
//Storeprocedure 为存储过程名
CallabelStatement cstm = con.prepareCall("{call Storeprocedure(?,?)}");
//登记输出参数,根据参数类型不同而改变java.sql.Types的值
cstm.registerOutParameter(1,java.sql.Types.TINYINT);
cstm.registerOutParameter(2,java.sql.Types.DECIMAL,2);
//执行
cstm.executeUpdate();
//获取输出参数的值
byte x = cstm.getByte(1);
Numeric n = cstm.getNumeric(2,2);
|
http://www.csdn.net/expert/topic/227/227106.xml?temp=.5372431
|
我来告诉你怎么给分,因为我一开始上来时也有类似的烦恼:
在你的贴子中点击“管理”,注意里面会有一项“给分”钮,我是在下面的格子里先填完分再按的这个钮,反正没出错。
在你的贴子中点击“管理”,注意里面会有一项“给分”钮,我是在下面的格子里先填完分再按的这个钮,反正没出错。
|
使用java.sql.CallableStatement来调用存储过程.
CallableStatement cstmt = con.prepareCall({?=call procedureName(?,?,?....)});
?=这个是返回的数值,如果存储过程没有返回,那么就省略他,同样,如果有多少参数就写多少?号.
如果有返回值那么需要调用注册方法.
CallableStatement cstmt = con.prepareCall({?=call procedureName(?,?,?....)});
?=这个是返回的数值,如果存储过程没有返回,那么就省略他,同样,如果有多少参数就写多少?号.
如果有返回值那么需要调用注册方法.
|
此例返回值是int型。至于数据库的连接于Sql语句的执行你应该没问题。
String SqlStr = "declare @xx int Exec @xx=ProcName Select @xx";
ResultSet rs = DB.getResultSet(SqlStr);
rs.next();
p = rs.getInt(1);
rs.close();
p即为返回值。
String SqlStr = "declare @xx int Exec @xx=ProcName Select @xx";
ResultSet rs = DB.getResultSet(SqlStr);
rs.next();
p = rs.getInt(1);
rs.close();
p即为返回值。