java编程调用存储过程中得到新增记录id号的实现方法

 更新时间:2015年10月31日 15:31:24   作者:5iasp  
这篇文章主要介绍了java编程调用存储过程中得到新增记录id号的实现方法,涉及Java数据库操作中存储过程的相关使用技巧,需要的朋友可以参考下

本文实例讲述了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;
}

希望本文所述对大家Java程序设计有所帮助。

相关文章

  • idea搭建mybatis环境配置全过程

    idea搭建mybatis环境配置全过程

    本文介绍了如何以IDEA搭建MyBatis环境配置的方法,包括步骤和注意事项,通过本文的介绍,可以轻松地以IDEA搭建MyBatis环境配置,提高开发效率
    2023-10-10
  • Java实现带附件的邮件发送功能

    Java实现带附件的邮件发送功能

    这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 详细了解JAVA NIO之Buffer(缓冲区)

    详细了解JAVA NIO之Buffer(缓冲区)

    这篇文章主要介绍了JAVA NIO之Buffer(缓冲区)的相关资料,文中讲解非常细致,帮助大家更好的学习JAVA NIO,感兴趣的朋友可以了解下
    2020-07-07
  • java GUI实现学生图书管理简单实例

    java GUI实现学生图书管理简单实例

    这篇文章主要为大家详细介绍了java GUI实现学生图书管理简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring中@Lazy注解的使用技巧与实例解析

    Spring中@Lazy注解的使用技巧与实例解析

    @Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将Bean的初始化延迟到第一次使用时,可以减少不必要的资源消耗,本文介绍Spring中@Lazy注解的使用技巧与实例解析,感兴趣的朋友一起看看吧
    2025-03-03
  • IDEA报错java.lang.OutOfMemoryError:Java heap space的解决办法

    IDEA报错java.lang.OutOfMemoryError:Java heap space的解决办法

    这篇文章主要给大家介绍了关于IDEA报错java.lang.OutOfMemoryError:Java heap space的解决办法,出现这个问题的主要原因是项目运行时的堆内存不足引起的报错,需要的朋友可以参考下
    2024-02-02
  • SpringBoot详解实现自定义异常处理页面方法

    SpringBoot详解实现自定义异常处理页面方法

    SpringBoot是Spring全家桶的成员之一,是一种整合Spring技术栈的方式(或者说是框架),同时也是简化Spring的一种快速开发的脚手架
    2022-06-06
  • Mybatis实现增删改查

    Mybatis实现增删改查

    这篇文章主要介绍了Mybatis实现增删改查,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-01-01
  • 浅谈Spring解决循环依赖的三种方式

    浅谈Spring解决循环依赖的三种方式

    本篇文章主要介绍了浅谈Spring循环依赖的三种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

    es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

    这篇文章主要介绍了es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论