|
阅读:33141回复: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从存储过程上看第一个参数为输出参数 |
|