java里面怎么调用mysql的存储过程的

如题所述

java代码:

  Class.forName("com.mysql.jdbc.Driver");

  Connection con = DriverManager

    .getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");

  String sql = "{call sel(?)}";

  CallableStatement cs = (CallableStatement)con.prepareCall(sql);

  cs.execute();

  String name = cs.getString(1);

  System.out.println(name);

 

创建存储过程代码:

drop procedure if exists sel;

create procedure sel(out name1 varchar(225))

begin

        select name into name1 from a limit 1;

end

 

输出结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-07
首先MySQL的test数据库里定义了一个student表:
create table student4(
id int primary key,
sanme char(5)
);
插入几个数据做测试用:
inset into student values(1,'mayi');
inset into student values(2,'mayi');
inset into student values(3,'mayi');

建立存储过程:
in 型:
delimiter //
create procedure demo_in(in p_in int)
begin
select p_in;
set p_in=2;
select p_in;
end;
//
delimiter ;

Java测试代码:
CallableStatement callstatement = conn.prepareCall("call demo_in(?)");//conn,数据库连接

callstatement.setInt(1, 1);//设置第一个参数

callstatement.execute();//执行

conn.close();//关闭连接

out型:

delimiter //
create procedure demo_out(out s int)
begin
select count(*) into s from student;
end
//
delimiter ;

java测试代码:
CallableStatement callstatement = conn.prepareCall("call demo_out(?)");

callstatement.registerOutParameter(1, java.sql.Types.INTEGER);//注册存储过程的out型参数类型;使用之前必须注册;

callstatement.execute();//执行

System.out.println(callstatement.getInt(1));//获得存储过程的输出参数

conn.close();//关闭连接

总结: 先在数据库中建立存储过程,然后获得数据库连接conn后,生成CallableStatement对象,执行相应的操作。
第2个回答  2016-04-27
首先我在MySQL的test数据库里定义了一个student表:
create table student4(
id int primary key,
sanme char(5)
);
插入几个数据做测试用:
inset into student values(1,'mayi');
inset into student values(2,'mayi');
inset into student values(3,'mayi');

建立存储过程:
in 型:
delimiter //
create procedure demo_in(in p_in int)
begin
select p_in;
set p_in=2;
select p_in;
end;
//
delimiter ;

Java测试代码:
CallableStatement callstatement = conn.prepareCall("call demo_in(?)");//conn,数据库连接

callstatement.setInt(1, 1);//设置第一个参数

callstatement.execute();//执行

conn.close();//关闭连接

out型:

delimiter //
create procedure demo_out(out s int)
begin
select count(*) into s from student;
end
//
delimiter ;

java测试代码:
CallableStatement callstatement = conn.prepareCall("call demo_out(?)");

callstatement.registerOutParameter(1, java.sql.Types.INTEGER);//注册存储过程的out型参数类型;使用之前必须注册;

callstatement.execute();//执行

System.out.println(callstatement.getInt(1));//获得存储过程的输出参数

conn.close();//关闭连接

总结: 先在数据库中建立存储过程,然后获得数据库连接conn后,生成CallableStatement对象,执行相应的操作。
看过的几篇文章:保留下来,下次记忆模糊了,在复习一下!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网