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)文章
idea搭建mybatis環(huán)境配置全過(guò)程
本文介紹了如何以IDEA搭建MyBatis環(huán)境配置的方法,包括步驟和注意事項(xiàng),通過(guò)本文的介紹,可以輕松地以IDEA搭建MyBatis環(huán)境配置,提高開發(fā)效率2023-10-10
Java實(shí)現(xiàn)帶附件的郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)帶附件的郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
詳細(xì)了解JAVA NIO之Buffer(緩沖區(qū))
這篇文章主要介紹了JAVA NIO之Buffer(緩沖區(qū))的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的學(xué)習(xí)JAVA NIO,感興趣的朋友可以了解下2020-07-07
java GUI實(shí)現(xiàn)學(xué)生圖書管理簡(jiǎn)單實(shí)例
這篇文章主要為大家詳細(xì)介紹了java GUI實(shí)現(xiàn)學(xué)生圖書管理簡(jiǎn)單示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
IDEA報(bào)錯(cuò)java.lang.OutOfMemoryError:Java?heap?space的解決辦法
這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò)java.lang.OutOfMemoryError:Java?heap?space的解決辦法,出現(xiàn)這個(gè)問(wèn)題的主要原因是項(xiàng)目運(yùn)行時(shí)的堆內(nèi)存不足引起的報(bào)錯(cuò),需要的朋友可以參考下2024-02-02
SpringBoot詳解實(shí)現(xiàn)自定義異常處理頁(yè)面方法
SpringBoot是Spring全家桶的成員之一,是一種整合Spring技術(shù)棧的方式(或者說(shuō)是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架2022-06-06
es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程詳解
這篇文章主要介紹了es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

