1. 程式人生 > >JDBC-MYSQL-儲存函式和儲存過程的呼叫

JDBC-MYSQL-儲存函式和儲存過程的呼叫

最近要學習資料庫,在用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()){
				System.out.println(rs.getObject(1));
			}