標籤:
首先我在mysql的test資料庫裡定義了一個student表:
create table student4(
id int primary key,
sanme char(5)
);
插入幾個資料做測試用:
inset into student values(1,‘mayi‘);
inset into student values(2,‘mayi‘);
inset into student values(3,‘mayi‘);
建立預存程序:
in 型:
delimiter //
create procedure demo_in(in p_in int)
begin
select p_in;
set p_in=2;
select p_in;
end;
//
delimiter ;
java測試代碼:
CallableStatement callstatement = conn.prepareCall("call demo_in(?)");//conn,資料庫連接
callstatement.setInt(1, 1);//設定第一個參數
callstatement.execute();//執行
conn.close();//關閉串連
out型:
delimiter //
create procedure demo_out(out s int)
begin
select count(*) into s from student;
end
//
delimiter ;
java測試代碼:
CallableStatement callstatement = conn.prepareCall("call demo_out(?)");
callstatement.registerOutParameter(1, java.sql.Types.INTEGER);//註冊預存程序的out型參數類型;使用之前必須註冊;
callstatement.execute();//執行
System.out.println(callstatement.getInt(1));//獲得預存程序的輸出參數
conn.close();//關閉串連
java 調用mysql的預存程序(簡單樣本)