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法式設計有所贊助。