java 調用mysql的存儲過程(簡單示例)

jopen 10年前發布 | 16K 次閱讀 Java開發 MySQL

首先我在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();//關閉連接


總結:  先在數據庫中建立存儲過程,然后獲得數據庫連接conn后,生成CallableStatement對象,執行相應的操作。

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!