java编程调用存储过程中得到新增记录id号的实现方法
本文实例讲述了java编程调用存储过程中得到新增记录id号的实现方法。分享给大家供大家参考,具体如下:
关于mssqlserver2000的存储过程,主要作用是在表test中插入一条记录,然后得到新增加记录的id号。
test表三个字段:
ID:自动增长
yhm:用户名字符串类型
kl:密码 字符串类型
那么在java程序中如何调用这个存储过程才能实现,得到新增加记录的id号
存储过程如下:
CREATEPROCEDUREyh_insert @yhmvarchar(50),@klvarchar(50) AS begin setnocounton insertintotest(yhm,kl)values(@yhm,@kl) setnocountoff selectnewid=@@identity end GO
解决办法:
在查询分析器中执行sp的方法
declare@idint execsp_yh_insert'tetstst','111111',@idoutput select@id
修改sp如下:使用输出参数来存储得到的新的Id
CREATEPROCEDUREsp_yh_insert @yhmvarchar(50),@klvarchar(50),@idintoutput AS begin setnocounton insertintotest(yhm,kl)values(@yhm,@kl) setnocountoff --selectnewid=@@identity select@id=@@identity--关键 end GO
java程序如下:
publicStringcall_sp_insert_jh(Stringyhm,Stringkl)throwsException
{
StringstrFlag="";
StringstrString="";
Connectionconn=null;
try
{
conn=db.getConnection();
//CallableStatementproc=conn.prepareCall(strSql);
CallableStatementproc=conn.prepareCall("{callsp_yh_insert(?,?,?)}");
proc.setString(1,"往往外饿饿饿额");//给第一个输入参数赋值
proc.setString(2,"1111111");//给第2个输入参数赋值
proc.registerOutParameter(3,Types.INTEGER);//处理输出参数
proc.execute();//执行sp
intid=proc.getInt(3);//得到返回值的值
strString=Integer.toString(id);
strFlag=strString;
}
catch(SQLExceptione)
{
System.out.println("procexecuteerror"+strString);
}
finally
{
//关闭数据库联接
try
{
conn.close();
}
catch(Exceptionsqle)
{
//产生新异常,则抛出新程序异常
//thrownewException("[DBBean.executeQuery(sql,tname)]","10");
System.out.println("出错了");
}
}
returnstrFlag;
}
希望本文所述对大家Java程序设计有所帮助。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短