java+sql server+CallableStatement调用存储过程三种情况

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

<% @ page contentType = " text/html;charset=gb2312 " %>
<% @ page  import = " java.sql.* " %>
< html >
    
< body >
        
<%
                    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(
" <br> " );

            
// 带参数的存储过程,并且返回值
            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 +   " <br> " );
            out.println(
" 减1的值是: "   +  stmt.getString( 2 +   " <br> " );

            
// 带参数的存储过程,并且返回结果集
            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+ "<br>");
                out.println(
"job_desc value is:" + rs.getString(2+ "<br>");
            }

        
%>
    
</ body >
</ html >


三个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


告诉自己:标准SQL语法和概念很重要,以后要强化这些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值