欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java+sql server+CallableStatement调用存储过程三种情况 (转)

发布时间:2025/3/16 java 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java+sql server+CallableStatement调用存储过程三种情况 (转) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在JSP页面中进行测试,代码如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>

<% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") .newInstance();

String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

//pubs为你的数据库的

String user = "sa";

String password = "";

Connection conn = DriverManager.getConnection(url, user, password);

//不带参数的存储过程,并且返回结果集

CallableStatement stmt = conn.prepareCall("{call ghy_proc}");

stmt.execute();

ResultSet rs = stmt.getResultSet();

while (rs.next())

{ out.println(rs.getString(1)); }

out.println("
");

//带参数的存储过程,并且返回值

stmt = conn.prepareCall("{call ghy_proc_return(?,?)}");

stmt.registerOutParameter(1, Types.INTEGER);

stmt.registerOutParameter(2, Types.INTEGER);

stmt.setInt(1, 10); stmt.setInt(2, 10);

stmt.execute();

out.println("加1的值是:" + stmt.getString(1) + "
"); out.println("减1的值是:" + stmt.getString(2) + "
");

//带参数的存储过程,并且返回结果集

stmt = conn.prepareCall("{call ghy_proc_var(?)}");

stmt.setInt(1, 14);

stmt.execute();

rs = stmt.getResultSet();

while (rs.next())

{ out.println("job_id value is:" + rs.getString(1) + "
"); out.println("job_desc value is:" + rs.getString(2) + "
");

} %>

三个SQL Server 2000存储过程如下:

CREATE PROCEDURE ghy_proc AS

select * from jobs GO CREATE PROCEDURE ghy_proc_return

(@max int output,@min int output) AS select @max=@max+1 select @min=@min-1 GO CREATE PROCEDURE ghy_proc_var (@id int) AS select * from jobs where job_id=@id GO

总结

以上是生活随笔为你收集整理的Java+sql server+CallableStatement调用存储过程三种情况 (转)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。