public ReportVo getReport() {
  //执行存储过程
ReportVo reportVo=jdbcTemplate.execute(new CallableStatementCreator() {
@Override
public CallableStatement createCallableStatement(Connection connection) throws SQLException {
        //注意:这里会有坑, 有几个参数就写几个问号{CALL management_report(?,?,?,?,?,?)} String sql = "{CALL management_report(?,?,?,?,?,?)}";
            CallableStatement prepareCall = connection.prepareCall(sql);
prepareCall.registerOutParameter(1, Types.INTEGER);
prepareCall.registerOutParameter(2, Types.INTEGER);
prepareCall.registerOutParameter(3, Types.DOUBLE);
prepareCall.registerOutParameter(4, Types.DOUBLE);
prepareCall.registerOutParameter(5, Types.INTEGER);
prepareCall.registerOutParameter(6, Types.INTEGER);
return prepareCall;
}
}, new CallableStatementCallback<ReportVo>() {
@Override
public ReportVo doInCallableStatement(CallableStatement callableStatement) throws SQLException, DataAccessException {
callableStatement.execute();
int partyGroupCount=callableStatement.getInt(1);
int personCount=callableStatement.getInt(2);
Double shipPlateSum=callableStatement.getDouble(3);
Double palletSum=callableStatement.getDouble(4);
int shipPlateCount=callableStatement.getInt(5);
int palletCount=callableStatement.getInt(6);
return new ReportVo( personCount, partyGroupCount, shipPlateSum, palletSum, shipPlateCount, palletCount);
}
});
return reportVo;
}

jdbc Template 存储过程 返回多个结果 ,out 输出参数的更多相关文章

  1. sql server使用sp_executesql返回拼接字符串里面的输出参数

    问题: 今天一同事请教博主,他拼接了一个语句,select表格形式数据,然后使用@@rowcount获取到行数. 但他又有这样特别的需求:想只获取行数而不返回表格数据结果,因为是while循环,不想返 ...

  2. oracle学习笔记(二十三)——JDBC调用存储过程以及批量操作

    jdbc调用存储过程 使用并获得out模式的参数返回值 //存储过程为sum_sal(deptno department.deptno%type,sum in out number) Callable ...

  3. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

  4. myabatis oracle 调用存储过程返回list结果集

    Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...

  5. oracle学习-存储过程返回一个值,和返回一个结果集

    一.返回一个值 --创建存储过程 create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is be ...

  6. Java数据库连接——JDBC调用存储过程,事务管理和高级应用

    一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...

  7. JDBC调用存储过程

    一. JDBC调用存储过程 (1)使用存储过程SQL编写的程序代码,等一段语句和控制流语句.在创建时被编译成机器代码和存储在数据库中的client转让. 存储过程具有以下优势: 1.所生成的机器代码被 ...

  8. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

  9. JDBC调用存储过程的例子

    下面是我学到了Oracle存储过程,在这里跟大家简单的分享一下利用JDBC调用存储过程的例子: 废话就不啰嗦,现在就直接上机代码. 首先我利用的是Oracle中默认的 scott 数据库里的 emp员 ...

随机推荐

  1. CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/repodata.json.bz2> Elapsed: -

    将C:\Users\<本机用户名>\.condarc文件修改为 channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/ ...

  2. npm 切换成淘宝镜像

    npm install nrm -g nrm use taobao

  3. 如何使用jQuery给asp.net的TextBox取值和赋值

    解决办法: 可以在控件中先设置属性ClientInstandName的值和ID的值一样,再使用$("#ID").val("12345")

  4. cmd释放重新获取IP

    1.打开电脑的命令提示符运行设置窗口之后,我们收入  ipconfig/release  ,然后点击回车键  ,释放之前获取的IP地址 2.释放之前的IP地址之后,我们在输入  ipconfig/re ...

  5. RAID和LVM

    EXT家族支持度最广,但创建文件系统慢修复慢存储容量有限 XFS同样是日志文件系统:容量大,支持大存储高性能,创建/修复文件系统快inode与block都是系统需要用到时,才动态配置产生 基本分区(静 ...

  6. VS工程的相对路径写法

    最近搭建一个VS工程的框架,为了让所有人都能直接使用,要使用相对路径,下面的几种常见路径的写法: 1.两个点“..\”表示在工程文件(*.vcxproj)的上一级目录. 2.一个点“.\”则表示和工程 ...

  7. signal之——异步回收机制

    前言:回收子进程之前用了wait()和非阻塞模型,今天学了信号以后可以使回收机制更上一层楼,通过信号函数,父进程只需要做自己的事情,接收到信号后就触发信号函数. 信号处理函数可能会出现的bug: 1. ...

  8. MySQL的详细操作

    MySQL的详细操作 存储引擎 不同的数据应该有不同的处理机制 mysql存储引擎 Innodb:默认的存储引擎 查询速度较myisam慢 但是更安全,支持事务,行锁,外键由于以上的支持,数据更安全, ...

  9. Two Sum(Medium)

    1.遍历一次nums,利用map记录已经遍历过的nums[i],并记录其index :i+1 2.每次求出b=target-nums[i],检测b是否在map中,如果在,则已经得到答案,否则,把num ...

  10. cs231n spring 2017 lecture3 Loss Functions and Optimization

    1. Loss function是用来量化评估当前预测的好坏,loss function越小表明预测越好. 几种典型的loss function: 1)Multiclass SVM loss:一般的S ...