package book.database;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
public class StorageProcedure {
public static void listStorageProcedureName(Connection con){
try{
DatabaseMetaData md=con.getMetaData();
ResultSet resultSet=md.getProcedures(null,null, "%");
System.out.println("数据库现有的存储过程名称为:");
while(resultSet.next()){
String procName=resultSet.getString(3);
System.out.println(procName+"/t");
}
System.out.println();
}catch(SQLException e){
e.printStackTrace();
}
}
public static void callStorageProcedure(Connection con){
CallableStatement cs=null;
try{
cs=con.prepareCall("{call test()}");
cs.execute();
cs=con.prepareCall("{call test(?)}");
cs.setInt(1,18);
cs.execute();
cs=con.prepareCall("{call my_count(?}");
cs.registerOutParameter(1,Types.INTEGER);
cs.execute();
int outParam=cs.getInt(1);
System.out.println("my_count_proc1()执行结果:"+outParam);
}catch(SQLException e){
e.printStackTrace();
}finally{
OperateDB.closeStatement(cs);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}