java編程調(diào)用存儲(chǔ)過(guò)程中得到新增記錄id號(hào)的實(shí)現(xiàn)方法
本文實(shí)例講述了java編程調(diào)用存儲(chǔ)過(guò)程中得到新增記錄id號(hào)的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
關(guān)于ms sql server2000的存儲(chǔ)過(guò)程,主要作用是在表test中插入一條記錄,然后得到新增加記錄的id號(hào)。
test表三個(gè)字段:
ID:自動(dòng)增長(zhǎng)
yhm:用戶名 字符串類型
kl: 密碼 字符串類型
那么在java程序中如何調(diào)用這個(gè)存儲(chǔ)過(guò)程才能實(shí)現(xiàn),得到新增加記錄的id號(hào)
存儲(chǔ)過(guò)程如下:
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
解決辦法:
在查詢分析器中執(zhí)行sp的方法
declare @id int exec sp_yh_insert 'tetstst','111111',@id output select @id
修改sp如下:使用輸出參數(shù)來(lái)存儲(chǔ)得到的新的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 --關(guān)鍵 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, "往往外餓餓餓額"); //給第一個(gè)輸入?yún)?shù)賦值 proc.setString(2, "1111111"); //給第2個(gè)輸入?yún)?shù)賦值 proc.registerOutParameter(3,Types.INTEGER); //處理輸出參數(shù) proc.execute(); //執(zhí)行sp int id = proc.getInt(3);//得到返回值的值 strString=Integer.toString(id); strFlag=strString ; } catch (SQLException e) { System.out.println("proc execute error"+strString); } finally { //關(guān)閉數(shù)據(jù)庫(kù)聯(lián)接 try { conn.close(); } catch(Exception sqle) { //產(chǎn)生新 異常,則拋出新 程序異常 //throw new Exception("[DBBean.executeQuery(sql,tname)]","10"); System.out.println("出錯(cuò)了"); } } return strFlag; }
希望本文所述對(duì)大家Java程序設(shè)計(jì)有所幫助。
- Java Spring動(dòng)態(tài)生成Mysql存儲(chǔ)過(guò)程詳解
- 詳解java調(diào)用存儲(chǔ)過(guò)程并封裝成map
- MyBatis創(chuàng)建存儲(chǔ)過(guò)程的實(shí)例代碼_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解
- Java實(shí)現(xiàn)調(diào)用MySQL存儲(chǔ)過(guò)程詳解
- 詳解Java的JDBC API的存儲(chǔ)過(guò)程與SQL轉(zhuǎn)義語(yǔ)法的使用
- Java調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法
- java調(diào)用mysql存儲(chǔ)過(guò)程實(shí)例分析
- Java中調(diào)用SQL Server存儲(chǔ)過(guò)程詳解
- java調(diào)用oracle分頁(yè)存儲(chǔ)過(guò)程示例
- java調(diào)用Oracle存儲(chǔ)過(guò)程的方法實(shí)例
- Java下使用Oracle存儲(chǔ)過(guò)程(詳解)
- Java存儲(chǔ)過(guò)程調(diào)用CallableStatement的方法
相關(guān)文章
C語(yǔ)言中下標(biāo)與指針的轉(zhuǎn)換以及指向指針的指針的例子
這篇文章主要介紹了C語(yǔ)言中下標(biāo)與指針的轉(zhuǎn)換以及指向指針的指針的示例,是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11mybatisplus中的xml對(duì)象參數(shù)傳遞問(wèn)題
這篇文章主要介紹了mybatisplus中的xml對(duì)象參數(shù)傳遞問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11淺析SpringBoot微服務(wù)中異步調(diào)用數(shù)據(jù)提交數(shù)據(jù)庫(kù)的問(wèn)題
這篇文章主要介紹了SpringBoot微服務(wù)中異步調(diào)用數(shù)據(jù)提交數(shù)據(jù)庫(kù)的問(wèn)題,今天本文涉及到的知識(shí)點(diǎn)不難,都是很簡(jiǎn)單的crud操作,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案
這篇文章主要介紹了關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案,線程池復(fù)用線程,如果子線程執(zhí)行完未移除上下文,則會(huì)導(dǎo)致后續(xù)線程可以取到之前線程設(shè)置的屬性,需要的朋友可以參考下2023-11-11java高并發(fā)ScheduledThreadPoolExecutor類深度解析
這篇文章主要為大家介紹了java高并發(fā)ScheduledThreadPoolExecutor類源碼深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11mybatis使用collection嵌套查詢的實(shí)現(xiàn)
本文主要介紹了mybatis使用collection嵌套查詢的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05SpringBoot中讀取application.properties配置文件的方法
這篇文章主要介紹了SpringBoot中讀取application.properties配置文件的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02