下面是利用CallableStatement连同下列getWork()的MySQL存储过程的例子:
请确定已经在数据库中创建该存储过程。可以使用MySQL查询浏览器来完成它。
package myPackage;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCProcedure {
//数据库路径
static String DATABASE_URL = "jdbc:mysql://127.0.0.1/work";
//数据库的账号密码
static String USERNAME = "root";
static String USERPASSWORD = "1234";
public static void main(String[] args){
Connection conn = null;
CallableStatement stmt = null;
try{
//注册数据库驱动
Driver driver = new com.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);
//创建一个数据库连接
conn = DriverManager.getConnection(DATABASE_URL, USERNAME, USERPASSWORD);
//调用存储过程
String sql = "call getWork(?,?)";
stmt = conn.prepareCall(sql);
stmt.setString(1, "001");
stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
stmt.execute();
System.out.println("id = 001 , telephone = " + stmt.getString(2));
//回收资源
stmt.close();
conn.close();
}catch(SQLException es){
es.printStackTrace();
}finally{
try{
if(stmt != null){
stmt.close();
}
}catch(SQLException es){
es.printStackTrace();
}
try{
if(conn != null){
conn.close();
}
}catch(SQLException es){
es.printStackTrace();
}
}
System.out.println("GOOD BYE");
}
}