淩粦卅喏 2022-10-10 20:06 采纳率: 0%
浏览 13

使用jdbc中的callableStatement通道链接数据库出现问题

**使用jdbc中的callableStatement通道链接数据库出现问题 **

控制台打印:请您输入员工id(批量删除员工-删除大于等于员工id的员工)
所有的业务逻辑以及SQL都写在存储过程内
存储过程返回一个删除成功或者删除失败的信息打印在控制台(日志)

Idea代码jdbc代码:

static void deleteEmpId(int id){
    Connection conn=null;
    CallableStatement cstmt=null;
    String anInt=null;
    try {
        conn=DriverManager.getConnection("jdbc:mysql:///query?useUnicode=true&characterEncoding=utf8",
                "root","123456");
        cstmt=conn.prepareCall("{call deleEmp(?,?)};");
        //同占位符传递参数
        cstmt.setInt(1,id);
        //通过占位符获取返回参数
        cstmt.registerOutParameter(2,Types.INTEGER);
        cstmt.execute();
        //获取第二个占位符对应类型的数据
        anInt=cstmt.getString(2);
        System.out.println(anInt);
        System.out.println("存储过程执行完成");
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
     //关闭流
        if(cstmt!=null){
            try {
                cstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

Datagrip代码存储过程代码

DELIMITER $

create procedure deleEmp(id int,out r varchar(20) char set utf8)
    begin
        declare ase int;
        select empId into ase  from emp where empId=id;
        while id=ase do-- 是否在数据表范围之内
            delete from emp where empId>=id;
            if ase<id then
                set  r='删除成功';
                else
                set r='删除失败';
            end if ;
            end while;
    end $

运行结果及报错内容
idea控制台输出的内容:

img


datagrip中的表数据:
emp表刷新前

img

emp表刷新后

img

                                     ** 效果达到了,但是控制台不显示提示语句;**

我想要达到的结果:
运行之后在控制台显示出数据库存储过程中out类型的输出语句

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-10 21:21
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 10月10日

悬赏问题

  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能