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為你的數(shù)據庫的
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
//不帶參數(shù)的存儲過程,并且返回結果集
CallableStatement stmt = conn.prepareCall("{call ghy_proc}");
stmt.execute();
ResultSet rs = stmt.getResultSet();
while (rs.next())
{ out.println(rs.getString(1)); }
out.println("
");
//帶參數(shù)的存儲過程,并且返回值
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) + "
");
//帶參數(shù)的存儲過程,并且返回結果集
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调用存储过程三种情况 (转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一张A4纸的牛B变化(你能吗?)
- 下一篇: symbian 视频播放解决方案