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

 我来答
在晴天的雨伞
推荐于2018-03-22 · TA获得超过6869个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1234万
展开全部

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

 

输出结果:

育知同创教育
2016-05-07 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
首先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对象,执行相应的操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莱墨De
2016-04-27 · 超过19用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:77.3万
展开全部
首先我在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对象,执行相应的操作。
看过的几篇文章:保留下来,下次记忆模糊了,在复习一下!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式