在之前写过一篇博客是如何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
)
创建存储过程的时候,第一个参数是输出参数,我相信看代码大概已经了解了