Java中调用存储过程

本文展示了如何在Java应用程序中调用SQL Server存储过程。通过建立数据库连接,创建CallableStatement对象并设置参数,然后执行存储过程,获取输出参数的结果。存储过程用于更新用户信息,如果成功则返回提示消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 import java.sql.*;

/**
 * Java中调用存储过程
 *
 * @author JRunner
 *
 * 2009-10-31
 *
 * Email:jrunner@sina.com
 */
public class TestProc {

 /**
  * @param 入口
  * @throws ClassNotFoundException
  * @throws SQLException
  */
 public static void main(String[] args) throws ClassNotFoundException,
   SQLException {

  String msg = "";

  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  Connection conn = DriverManager.getConnection(
    "jdbc:sqlserver://localhost:1433;DatabaseName=JRun", "sa", "");
  CallableStatement cs = conn
    .prepareCall("{call UpdateUserById(?,?,?,?,?,?)}");
  cs.registerOutParameter(6, Types.VARCHAR);
  cs.setString(1, "1");
  cs.setString(2, "JRunner");
  cs.setString(3, "JRunner");
  cs.setString(4, "3");
  cs.setString(5, "3");

  cs.execute();
  msg = cs.getString(6);

  cs.close();
  conn.close();

  System.out.println(msg);
 }

}


//---------------------------------SQL------------------------------------------------
/*
create database JRun
go

use JRun
go

create table t_user
(
 u_id int identity(1,1) not null,
 u_name varchar(20) not null,
 u_password varchar(20) not null,
 u_sex int not null,
 u_age int not null
)
go

create proc UpdateUserById
 @u_id int,
 @u_name varchar(20),
 @u_password varchar(20),
 @u_sex int,
 @u_age int,
 @msg varchar(50) output
as
update t_user set u_name=@u_name, u_password=@u_password, u_sex=@u_sex, u_age=@u_age
where u_id=@u_id
if(@@rowcount > 0)
 set @msg = '成功的修改了一条数据'
else
 set @msg = '修改失败'
go

insert into t_user(u_name,u_password,u_sex,u_age) values('JRunner','JRunner',1,1)

declare @msg varchar(50)
exec UpdateUserById 1,'Java','Java', 2, 2, @msg output
select @msg

select * from t_user
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值