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

