最近要學習資料庫,在用jdbc呼叫儲存過程和儲存函式是出現了小麻煩。在mysql中,用jdbc呼叫儲存過程和儲存函式還是有一些不同的。
一,用jdbc呼叫儲存過程一般過程如下:
string sql = "call proc(?,?)";
callablestatement cstmt = con.preparecall(sql); //預處理
cstmt.setstring(1, in); //設定輸入引數
cstmt.registeroutparameter(2,types.integer); //設定輸出引數
cstmt.execute(); //執行
二,用jdbc呼叫儲存函式
由於mysql的儲存函式沒有輸出引數,只有返回值,用上面的方法去呼叫儲存函式時會報錯,我用下面的方法獲取返回引數
string sql = "select fun(?)";
callablestatement cstmt = con.preparecall(sql); //預處理
cstmt.setstring(1, in); //設定輸入引數
cstmt.execute(); //執行
resultset rs=cstmt.getresultset(); //通過結果集獲取儲存函式的返回引數
while(rs.next())
mysql儲存nosql NoSQL常見儲存方式
一 鍵值儲存 它的資料是以鍵值的形式儲存的,雖然它的速度非常快,但基本上只能通過鍵的完全一致查詢獲取資料,根據資料的儲存方式可以分為臨時性 永久性和兩者兼具三種。1 臨時性 memcached 所謂臨時性就是資料有可能丟失,memcached把所有資料都儲存 一 鍵值儲存 它的資料是以鍵值的形式儲存...
儲存過程和儲存函式
1 mysql 在操作子程式時,由於需要使用分號 所以要使用delimiter先重新定義分界符為 以下 包含的內容表示注釋 delimiter 使用delimiter 把定界符由 設定為 注意 delimiter 和 之間的空格。1 建立子程式 儲存過程和儲存函式的統稱 create procedu...
儲存過程和儲存函式
儲存過程 stored procedure 是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫。中使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它 優點 1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而 一般sql 語句每執行一次就編譯一次,...