当前位置:首页 » 存储配置 » java调用存储过程带参数

java调用存储过程带参数

发布时间: 2022-04-14 13:33:37

‘壹’ java 如何调用带有表值参数的存储过程

有参数直接在括号那里拼进去就好了,我就不详细说明了。
conn = this.getsqlSession().getConfiguration().getEnvironment().getDataSource().getConnection();
if (isPackage) {
proc = conn.prepareCall("{call "+storedName+"()}");
}else{
proc = conn.prepareCall("{call "+storedName+"}");
}
proc.execute();

‘贰’ java调用的存储过程,能否传入游标参数

java调用的存储过程,不能传入游标参数,但是存储过程调用的内部存储过程,可以存入游标参数。未完待续

‘叁’ Java如何实现对存储过程的调用

import java.sql.*;
public class ProcereTest
{
public static void main(String args[]) throws Exception
{
//加载驱动
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
//获得连接
Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");

//创建存储过程的对象
CallableStatement c=conn.prepareCall("{call getsum(?,?)}");

//给存储过程的第一个参数设置值
c.setInt(1,100);

//注册存储过程的第二个参数
c.registerOutParameter(2,java.sql.Types.INTEGER);

//执行存储过程
c.execute();

//得到存储过程的输出参数值
System.out.println (c.getInt(2));
conn.close();

}
}

‘肆’ Java中,怎样调用带输出参数的存储过程(转)

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.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); //获得连接 Connection conn = DriverManager.getConnection("jdbc:odbc:mydata", "sa",""); //创建存储过程的对象 CallableStatement c = conn.prepareCall("{call proc_CSCO_SalesFctByStore(?,?,?,?)}"); //给存储过程的第一个参数设置值

‘伍’ java里面怎么调用存储过程

最近做一个自动发邮件的schele,由于取数据的sql太长,直接分割很麻烦,就想到调用PL/SQL,网上查了资料做了练习,在此做下小结。
1、只有输入参数而没有返回结果的存储过程。
sql:
1 create or replace procere prc_1(deptno in number,dname in varchar2,loc in varchar2)
2 is
3 begin
4 insert into dept values(deptno,dname,loc);
5 end prc_1;

java:

1 static void test1(){
2 Connection conn=null;
3 CallableStatement csmt=null;
4 try {
5 conn=JDBCUtils.getConnection();
6 conn.setAutoCommit(false);
7 csmt=conn.prepareCall("call prc_1(?,?,?)");
8 csmt.setInt(1,80);
9 csmt.setString(2,"ioc");
10 csmt.setString(3,"fhp");
11 csmt.execute();
12 conn.commit();
13 System.out.println("success insert data");
14 } catch (SQLException e) {
15 e.printStackTrace();
16 }
17 }

2、有输入参数且有一个返回值的存储过程。
sql:
1 create or replace procere prc_2(p_deptno in number,p_loc out varchar2) is
2 begin
3 select loc into p_loc from dept where deptno=p_deptno;
4 end prc_2;

java:

1 static void test2(){
2 Connection conn=null;
3 CallableStatement csmt=null;
4 try {
5 conn=JDBCUtils.getConnection();
6 conn.setAutoCommit(false);
7 csmt=conn.prepareCall("call prc_2(?,?)");
8 csmt.setInt(1,70);
9 csmt.registerOutParameter(2,Types.VARCHAR);
10 csmt.execute();
11 conn.commit();
12 System.out.println("MIS位置:"+csmt.getString(2));
13 } catch (SQLException e) {
14 e.printStackTrace();
15 }
16 }

3、返回多行记录(游标)的存储过程。
sql:
首先要建立一个返回游标,以便接收返回结果。

1 create or replace package testpackage is
2 type test_cursor is ref cursor;
3 end testpackage;
4
5 create or replace procere prc_3(p_cursor out testpackage.test_cursor)is
6 begin
7 open p_cursor for
8 select * from dept order by deptno;
9 end prc_3;

java:

1 static void test3(){
2 Connection conn=null;
3 CallableStatement csmt=null;
4 ResultSet rs=null;
5 try {
6 conn=JDBCUtils.getConnection();
7 conn.setAutoCommit(false);
8 csmt=conn.prepareCall("call prc_3(?)");
9 csmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
10 csmt.execute();
11 rs=(ResultSet) csmt.getObject(1);
12 while(rs.next()){
13 System.out.println(rs.getString("deptno")+'\t'+rs.getString("dname")+'\t'+rs.getString("loc"));
14 }
15 } catch (SQLException e) {
16 // TODO Auto-generated catch block
17 e.printStackTrace();
18 }finally{
19 JDBCUtils.free(rs, csmt, conn);
20 }
21 }

‘陆’ java中如何调用数据库的存储过程

Java调用存储过程的方法是通过调用Connection的实例方法prepareCall,prepareCall方法返回CallableStatement对象用于填充存储过程的参数。prepareCall方法形参是调用存储过程的sql语句,此参数的语法格式如下:

{callstoredProcereName(parameter-list)}

其中,storedProcereName是存储过程名称,parameter-list是存储过程参数列表。

例如,存储过程名为usp_test,有两个输入参数a,b。则调用代码看起来如下所示:

=connection.prepareCall("{callusp_test(?,?)}");
callableStatement.setObject("a","value-1");
callableStatement.setObject("b","value-2");
callableStatement.execute();

‘柒’ 如何在java中调用存储过程

使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列,

ResultSetrs=stmt.executeQuery("{calldbo.ProcereName}");
调用带参数的存储过程时,必须结合SQLServerConnection类的prepareCall方法使用callSQL转义序列
CallableStatementcstmt=con.prepareCall("{calldbo.ProcereName(?,?)}");
cstmt.setInt(1,java.sql.Types.INTEGER);
cstmt.registerOutParameter(2,java.sql.Types.VARCHAR);
cstmt.execute();
System.out.println("MANAGERID:"+cstmt.getInt(1));
System.out.println("MANAGERNAME:"+cstmt.getInt(2));
热点内容
安卓手机用什么软件防止别人蹭网 发布:2024-11-20 09:37:18 浏览:837
顶级asmr助眠解压赫敏 发布:2024-11-20 09:36:34 浏览:427
帝瓦雷算法 发布:2024-11-20 09:16:11 浏览:51
怎么查看一个ip地址服务器关闭 发布:2024-11-20 09:12:26 浏览:442
金钻文件夹加密大师是啥 发布:2024-11-20 09:01:22 浏览:881
苹果看手机配置怎么看 发布:2024-11-20 09:01:15 浏览:998
mysql慢sql语句 发布:2024-11-20 09:01:14 浏览:312
电脑搭建虚拟中文服务器 发布:2024-11-20 08:58:57 浏览:525
python服务器搭建 发布:2024-11-20 08:54:56 浏览:104
文件夹标绿 发布:2024-11-20 08:54:02 浏览:816