Sql Server 调用存储过程

创建存储过程:
1、在企业管理器中新建存储过程
2、在查询分析器中编辑存储过程(带有参数和返回值的)
 1 SET  QUOTED_IDENTIFIER  ON  
 2 GO
 3 SET  ANSI_NULLS  ON  
 4 GO
 5
 6 ALTER      procedure  insertUserinfo  @name   varchar ( 50 ), @sex   varchar ( 50 ), @birthday   varchar ( 50 ), @returnValue   int   =   0  output
 7
 8 as
 9
10 insert   into  userinfo (name,sex,birthday)  values  ( @name , @sex , @birthday )
11
12 set   @returnValue   =   1 ;
13
14 GO
15 SET  QUOTED_IDENTIFIER  OFF  
16 GO
17 SET  ANSI_NULLS  ON  
18 GO
Java 调用存储过程
1.数据库连接
 1 package  com.hujuan.conn;
 2 import  java.sql.Connection;
 3 import  java.sql.DriverManager;
 4 import  java.sql.SQLException;
 5
 6
 7 public    class  DatabaseConn  {
 8
 9    public static Connection getConnection(){
10        String className= "com.microsoft.jdbc.sqlserver.SQLServerDriver";
11        String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=login";
12        String name = "sa";
13        String password = "sasa";
14        try {
15            Class.forName(className);
16            
17            return DriverManager.getConnection(url,name,password);
18        }
 catch (ClassNotFoundException e) {
19            e.printStackTrace();
20        }
 catch (SQLException e) {
21            e.printStackTrace();
22        }

23        return null;
24    }

25}
2.通过连接调用存储过程
 1 package  com.hujuan.dao;
 2 import  java.sql.CallableStatement;
 3 import  java.sql.Connection;
 4 import  java.sql.ResultSet;
 5 import  java.sql.SQLException;
 6 import  java.sql.Types;
 7 import  com.hujuan.conn.DatabaseConn;
 8
 9 public   class  SqlServerProc  {
10
11    public static void main(String[] args) {
12        Connection conn = null;
13        CallableStatement call = null;
14        conn = DatabaseConn.getConnection();
15
16        try {
17            call = conn.prepareCall("{call insertUserinfo(?,?,?,?)}");
18            call.setString(1"hujuan");
19            call.setString(2"");
20            call.setString(3"1985-06-16");
21            call.registerOutParameter(4, Types.INTEGER);
22            call.executeUpdate();
23            int value = call.getInt(4);
24            System.out.println(value);
25        }
 catch (SQLException e) {
26            e.printStackTrace();
27        }
finally{
28            try {
29                if(call != null)call.close();
30                if(conn != null)conn.close();
31            }
 catch (SQLException e) {
32                e.printStackTrace();
33            }

34        }

35        
36    }

37}
返回结果集
 1 package  com.hujuan.dao;
 2 import  java.sql.CallableStatement;
 3 import  java.sql.Connection;
 4 import  java.sql.ResultSet;
 5 import  java.sql.SQLException;
 6 import  java.sql.Types;
 7 import  com.hujuan.conn.DatabaseConn;
 8
 9 public   class  SqlServerProc  {
10
11    public static void main(String[] args) {Connection conn = null;
12        CallableStatement call = null;
13        ResultSet rs = null;
14        conn = DatabaseConn.getConnection();
15
16        try {
17            call = conn.prepareCall("{?=call selectUserinfo()}");
18            call.registerOutParameter(1, Types.REAL);
19            rs = call.executeQuery();
20            while(rs.next()){
21                System.out.println(rs.getString("name"));
22            }

23
24        }
 catch (SQLException e) {
25            e.printStackTrace();
26        }
finally{
27            try {
28                if(rs != null)rs.close();
29                if(call != null)call.close();
30                if(conn != null)conn.close();
31            }
 catch (SQLException e) {
32                e.printStackTrace();
33            }

34        }

35    }

36
37}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值