java程序调用存储过程得到新增加记录的id号的方法-阿里云开发者社区

开发者社区> 数据库> 正文

java程序调用存储过程得到新增加记录的id号的方法

简介:

关于ms sql server2000的存储过程,主要作用是在表test中插入一条记录,然后得到新增加记录的id号。

test表三个字段:
ID:自动增长
yhm:用户名 字符串类型
kl: 密码   字符串类型

请问在java程序中如何调用这个存储过程才能实现,得到新增加记录的id号


存储过程如下:
CREATE PROCEDURE yh_insert

@yhm varchar(50),@kl varchar(50)

AS

begin

 

set nocount on

 insert into test(yhm,kl) values(@yhm,@kl)

set nocount off

select newid=@@identity

end

GO

 

解决办法:

在查询分析器中执行sp的方法
declare @id int
exec sp_yh_insert 'tetstst','111111',@id output
select @id


修改sp如下:使用输出参数来存储得到的新的Id

CREATE PROCEDURE sp_yh_insert

@yhm varchar(50),@kl varchar(50),@id int  output

AS

begin


set nocount on

 insert into test(yhm,kl) values(@yhm,@kl)

set nocount off

--select newid=@@identity

select @id=@@identity --关键


end
GO

java程序如下:

public String call_sp_insert_jh(String yhm,String kl)throws Exception
 {
    String strFlag = "";
    String strString = "";
    Connection conn = null;


    try
      {

        conn = db.getConnection();

        //CallableStatement proc = conn.prepareCall(strSql);

        CallableStatement   proc=conn.prepareCall("{call sp_yh_insert(?,?,?)}");

        proc.setString(1, "往往外饿饿饿额");  //给第一个输入参数赋值
        proc.setString(2, "1111111");  //给第2个输入参数赋值
        proc.registerOutParameter(3,Types.INTEGER);  //处理输出参数
        proc.execute(); //执行sp
        int id = proc.getInt(3);//得到返回值的值
        strString=Integer.toString(id);
        strFlag=strString ;


      }
    catch (SQLException e)
      {
          System.out.println("proc execute error"+strString);
       }
    finally
      {
          //关闭数据库联接
          try
            {
            conn.close();
            }
         catch(Exception sqle)
           {
           //产生新 异常,则抛出新 程序异常
           //throw new Exception("[DBBean.executeQuery(sql,tname)]","10");
            System.out.println("出错了");
           }
       }


    return strFlag;
 }

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章