在之前寫過一篇博客是如何mysql如何創建存儲過程,在這一節中,我們是在原來的基礎上來進一步的學習,如何在Java程序中使用Java代碼來調用mysql存儲過程.
mysql創建存儲過程:http://blog.csdn.net/datouniao1/article/details/77891999
這個地方我們就對創建存儲過程不做太多的重復,我們還使用之前創建的pr_multi這個存儲過程
,來看在Java程序中如何來調用這個存儲過程,首先創建一個Java程序,然后鏈接數據庫,這些就不說了,直接上代碼:
package com.wdg.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
import com.mysql.jdbc.CallableStatement;
public class JDBCUtil {
private static final String driverName = "com.mysql.jdbc.Driver";
private static final String dbURL = "jdbc:mysql://localhost:3306/mytest";
private static final String userName = "root";
private static final String userPassword = "11111";
private static Connection conn=null;
public static JDBCUtil instance;
public static JDBCUtil getInstance(){
if(instance == null){
instance = new JDBCUtil();
}
return instance;
}
@SuppressWarnings("unused")
private static Connection getConnection(){
if(conn==null){
try {
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPassword);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
public static void main(String [] args) throws SQLException {
String sql="{call pr_multi(?,?,?)}";
CallableStatement cstm = (CallableStatement) getConnection().prepareCall(sql); //實例化對象cstm
cstm.registerOutParameter(1, Types.INTEGER); // 設置返回值類型 即返回值
cstm.setInt(2,5);
cstm.setInt(3,3);
cstm.execute();
System.out.println(cstm.getInt(1));
cstm.close();
getConnection().close();
}
}
調用存儲過程的 代碼主要在main函數中,因為我們上面創建了存儲過程pr_multi,我們在這個地方就定義一個sql,因
create PROCEDURE pr_multi(
out c int,
a int,
b int
)
創建存儲過程的時候,第一個參數是輸出參數,我相信看代碼大概已經了解了