注:本文来源于《 spring jdbctemplate调用存储过程,返回list对象

spring jdbctemplate调用存储过程,返回list对象

方法:

/*** 调用存储过程* @param spName*/@SuppressWarnings("unchecked")public List<HashMap<String, Object>> executeSP(String procedure) {//procedure = "{call WCITY2_STATISTIC.sp_uservisit_stat(?)}";return (List<HashMap<String, Object>>) jdbcTemplate.execute(procedure,new CallableStatementCallback() {public Object doInCallableStatement(CallableStatement cs) throws SQLException,DataAccessException {List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();cs.registerOutParameter(1, OracleTypes.CURSOR);cs.execute();ResultSet rs = (ResultSet) cs.getObject(1);while (rs.next()) {HashMap<String, Object> dataMap = new HashMap<String, Object>();ResultSetMetaData rsMataData = rs.getMetaData();for (int i = 1; i <= rsMataData.getColumnCount(); i++) {dataMap.put(rsMataData.getColumnName(i), rs.getString(rsMataData.getColumnName(i)));}list.add(dataMap);}return list;}});}

存储过程:

create or replace package WCITY2_STATISTIC is-- Author  : ADMINISTRATOR-- Created : 2012/10/24 9:48:34-- Purpose : type Ref_Cursor is ref cursor;--procedure sp_pager_stats;--访问信息procedure sp_uservisit_stat(c_uservisit out Ref_Cursor);end WCITY2_STATISTIC;create or replace package body WCITY2_STATISTIC is--页面信息procedure sp_pager_stats isbegin-- cur_page as select * from OMS_WIRELESS. TEMPLATE_FILE_WORKING;null;end sp_pager_stats;--访问信息procedure sp_uservisit_stat(c_uservisit out Ref_Cursor) as--定义游标/*cursor c_uservisit isselect t.city,t.username,t.username as telphone,'' as ipfrom INTERFACE_WIRELESS.USER_LOGIN_LOG t ;*/beginopen c_uservisit Forselect t.city, t.username, t.username as telphone, '' as ipfrom INTERFACE_WIRELESS.USER_LOGIN_LOG t;end;end WCITY2_STATISTIC;

调用方法:

    @SuppressWarnings("rawtypes")public String getUserVisitStat(){//List lst=jdbcService.executeSP("");String procedure = "{call WCITY2_STATISTIC.sp_uservisit_stat(?)}";List lst=spService.executeSP(procedure);if(lst!=null){System.out.println(lst.size());}return SUCCESS;}

自己编写的代码

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.JdbcTemplate;import com.tt.pwp.framework.data.dao.DaoFactory;import oracle.jdbc.OracleTypes;public class FuncReportTaskService {protected final Logger logger = LoggerFactory.getLogger(this.getClass());@Autowiredprivate DaoFactory daoFactory;/*** 调用存储过程* @param spName*/@SuppressWarnings("unchecked")public List<HashMap<String, Object>> executeSP(String procedure) {JdbcTemplate jdbcTemplate = daoFactory.getDao().getJdbcTemplate();//procedure = "{call WCITY2_STATISTIC.sp_uservisit_stat(?)}";return (List<HashMap<String, Object>>) jdbcTemplate.execute(procedure,new CallableStatementCallback() {public Object doInCallableStatement(CallableStatement cs) throws SQLException,DataAccessException {List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();cs.registerOutParameter(1, OracleTypes.CURSOR);cs.execute();ResultSet rs = (ResultSet) cs.getObject(1);while (rs.next()) {HashMap<String, Object> dataMap = new HashMap<String, Object>();ResultSetMetaData rsMataData = rs.getMetaData();for (int i = 1; i <= rsMataData.getColumnCount(); i++) {dataMap.put(rsMataData.getColumnName(i), rs.getString(rsMataData.getColumnName(i)));}list.add(dataMap);}return list;}});}
}

转载于:https://www.cnblogs.com/ios9/p/9370825.html

spring jdbctemplate调用存储过程,返回list对象相关推荐

  1. jdbctemplate mysql 分页查询 返回list对象_spring jdbctemplate调用存储过程,返回list对象...

    spring jdbctemplate调用存储过程,返回list对象 方法: /** * 调用存储过程 * @param spName */ @SuppressWarnings("unche ...

  2. jdbcTemplate 调用存储过程。 入参 array 返回 cursor

    注:本文来源<  jdbcTemplate 调用存储过程. 入参 array 返回 cursor   > 需求: java传入一个list object.从数据库找到相关的数据并返回. 如 ...

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

    视频课:https://edu.csdn.net/course/play/7940 Mapper.xml 配置 <resultMap type="emp" id=" ...

  4. java使用mybatis 调用存储过程返回一个游标结果集

    瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7 版本:6.0,4.5 文档用途 mybat ...

  5. ASP调用存储过程返回了一个参数和一个记录集时出现ADODB.Recordset 错误 '800a0e78'...

    在测试服务器上给sql server2005 打上了sp3补丁,发现有一个调用存储过程的页面报错 ADODB.Recordset 错误 '800a0e78' 对象关闭时,不允许操作. 以为是sp3的缘 ...

  6. java 存储过程 数组_Java调用存储过程返回数组

    Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...

  7. Java调用存储过程返回数组

    Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...

  8. dapper 调用 存储过程返回值_数据库事务、存储过程、函数以及触发器之间的区别和联系...

    一.[事务概念] 事务(Transaction)是指构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行. 1,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前 ...

  9. Java 调用存储过程 返回结果集

    这里使用Oracle数据库的thin连接. 下面是存储过程SQL 1 createorreplaceprocedure proc3(stid in student.stuid%type, stname ...

最新文章

  1. ASP.NET Page和Response 输出js的区别
  2. lucene索引的删除和更新
  3. MS IDE 工程垃圾清理
  4. 另一种同步软件Unison的使用方法
  5. JVM Attach机制实现
  6. 文献记录(part92)--Graph regularized low-rank representation for submodule clustering
  7. SAP Fiori Elements原理介绍之类型为Value Help的Smart Field工作原理
  8. jenkins~集群分发功能和职责处理
  9. [Web 前端] 解决因inline-block元素导致的空白间距和元素下沉
  10. 刚进职场的程序员,请万分珍重你的第一份工作,不要轻易辞职!
  11. [转载] [转载] python set集合如何有序输出_python set集合的用法
  12. 第四届江西省高校网络安全技能大赛初赛WebMisc—Writeup
  13. linux给普通用户添加管理员权限,linux 赋予普通用户管理员权限
  14. Python-等额本息计算
  15. 问学计算机的同学买什么电脑,学生用的笔记本电脑什么样的好
  16. 【转】经典的劝酒令和挡酒词
  17. PHP关于生成6位唯一固定邀请码,附带加密解密(终于可以不用存数据库啦)
  18. R pdf大小_免费、开源、多平台支持的PDF文档处理软件 PDFsam Basic
  19. Android第一行代码-Fragment
  20. python 新闻摘要_每日新闻摘要:iPad Mini评论,AT&T首席执行官获得Robocall等等

热门文章

  1. flask+sqlite3+echarts2+ajax数据可视化--静态图
  2. 搭建高吞吐量 Kafka 分布式发布订阅消息 集群
  3. 安卓之上传文件,即HTTP提交表单
  4. windows7旗舰版系统自带组件IIS搭建ftp
  5. shutdown,halt,reboot,init
  6. [MySql] - 解决部署的服务器没有安装MySql Connector
  7. 对团队建设与管理的几点看法
  8. Java多线程初学者指南(12):使用Synchronized块同步变量
  9. Gateway网关-快速入门
  10. 手写自己的MyBatis框架-核心对象