JDBC调用sqlserver的存储过程

首先建立两个存储过程:
存储过程p_1----从cell表中取出数据
create proc p_1 
as 
select * from cell
go
存储过程p_2----往cell表里插入数据
create proc p_2 
    @name varchar(40),
    @remark varchar(40)
as
insert into cell(name,remark) values(@name,@remark)
go
调用存储过程p_1:
import java.sql.*;

/**
 * jdbc中调用存储过程
 * @author jiafang83
 *
 */
public class Procedure2 {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fish";
        String user = "bm";
        String pwd = "bm";
        Connection conn = null;
        CallableStatement proc = null;//执行sql存储过程的接口
        ResultSet rs = null;

//        调用存储过程p_1:从Cell表中取出数据
        try{
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            conn = DriverManager.getConnection(url,user,pwd);
            proc = conn.prepareCall("{? = call p_1 ()}");
            proc.registerOutParameter(1, Types.REAL);
            rs = proc.executeQuery();//取得结果集
            while(rs.next()){
                System.out.println(rs.getString("name"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(rs!=null) rs.close();
            if(proc!=null)proc.close();
            if(conn!=null)conn.close();
        }
    }

}

调用存储过程p_2:
import java.sql.*;

/**
 * jdbc中调用存储过程
 * @author jiafang83
 *
 */
public class Procedure {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fish";
        String user = "bm";
        String pwd = "bm";
        Connection conn = null;
        CallableStatement proc = null;//执行sql存储过程的接口
        
//        调用存储过程p_2:向Cell表中插入数据
        try{
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            conn = DriverManager.getConnection(url,user,pwd);
            proc = conn.prepareCall("{call p_2 (?,?)}");
            proc.setString(1, "测试");
            proc.setString(2, "测试");
            proc.execute();
            System.out.println("成功调用存储过程,插入数据!");
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(proc!=null)proc.close();
            if(conn!=null)conn.close();
        }
    }



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java调用SQL Server存储过程的步骤如下: 1. 导入JDBC驱动包。下载并导入SQL Server JDBC驱动包,以便Java程序可以连接到SQL Server数据库。 2. 创建数据库连接。使用Java中的JDBC API创建数据库连接,包括连接字符串、用户名和密码等信息。 3. 创建CallableStatement对象。使用Java中的JDBC API创建CallableStatement对象,它用于执行存储过程。 4. 设置参数。使用CallableStatement对象的setXXX()方法设置输入参数、输出参数和返回值类型等信息。 5. 执行存储过程。使用CallableStatement对象的execute()方法执行存储过程。 6. 处理返回结果。使用CallableStatement对象的getXXX()方法获取存储过程的返回结果,包括输出参数和返回值等信息。 示例代码: ```java import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Types; public class CallSP { public static void main(String[] args) throws Exception { // 创建数据库连接 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url = "jdbc:sqlserver://localhost:1433;databaseName=mydb"; String user = "sa"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); // 创建CallableStatement对象 String sql = "{call myproc(?, ?)}"; CallableStatement cs = conn.prepareCall(sql); // 设置输入参数 cs.setInt(1, 100); // 设置输出参数 cs.registerOutParameter(2, Types.VARCHAR); // 执行存储过程 cs.execute(); // 处理返回结果 String result = cs.getString(2); System.out.println(result); // 关闭数据库连接 cs.close(); conn.close(); } } ``` 在上面的示例中,调用了名为myproc的存储过程,它有一个输入参数和一个输出参数。在执行存储过程之后,通过cs.getString(2)获取输出参数的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值