java編程挪用存儲進程中獲得新增記載id號的完成辦法。本站提示廣大學習愛好者:(java編程挪用存儲進程中獲得新增記載id號的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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;
}
願望本文所述對年夜家Java法式設計有所贊助。