阅读:12549回复:0
JDBC调用存储过程package demo.sp; import java.sql.*; import com.mysql.jdbc.MysqlDefs; public class T { public static void main(String args[]) throws Exception { //加载驱动 DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); //Class.forName("com.mysql.jdbc.Driver"); //获得连接 Connection conn=DriverManager.getConnection("jdbc:mysql://172.18.100.20:3306/jfids","root","jfids"); //创建存储过程的对象 CallableStatement c=conn.prepareCall("{call ajaxCallProcedure(?,?)}"); //给存储过程的第一个参数设置输入值 c.setString(1, "@s"); //给存储过程的第二个参数设置输入值 c.setString(2, "admin"); //注册输出参数 c.registerOutParameter(1,java.sql.Types.INTEGER); //执行存储过程 c.execute(); //得到存储过程的输出参数值 System.out.println (c.getInt(1)); conn.close(); } } 存储过程: BEGIN #Routine body goes here... set @v_sql= concat("select count(*) INTO @s from demo_bill WHERE billuser like '%",bu,"%'" ); PREPARE mysql FROM @v_sql; EXECUTE mysql; DEALLOCATE PREPARE mysql; SET s = @s; END从存储过程上看第一个参数为输出参数 |
|