spring jdbctemplate调用存储过程,返回list对象
注:本文来源于《 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对象相关推荐
- jdbctemplate mysql 分页查询 返回list对象_spring jdbctemplate调用存储过程,返回list对象...
spring jdbctemplate调用存储过程,返回list对象 方法: /** * 调用存储过程 * @param spName */ @SuppressWarnings("unche ...
- jdbcTemplate 调用存储过程。 入参 array 返回 cursor
注:本文来源< jdbcTemplate 调用存储过程. 入参 array 返回 cursor > 需求: java传入一个list object.从数据库找到相关的数据并返回. 如 ...
- myabatis oracle 调用存储过程返回list结果集
视频课:https://edu.csdn.net/course/play/7940 Mapper.xml 配置 <resultMap type="emp" id=" ...
- java使用mybatis 调用存储过程返回一个游标结果集
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7 版本:6.0,4.5 文档用途 mybat ...
- ASP调用存储过程返回了一个参数和一个记录集时出现ADODB.Recordset 错误 '800a0e78'...
在测试服务器上给sql server2005 打上了sp3补丁,发现有一个调用存储过程的页面报错 ADODB.Recordset 错误 '800a0e78' 对象关闭时,不允许操作. 以为是sp3的缘 ...
- java 存储过程 数组_Java调用存储过程返回数组
Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...
- Java调用存储过程返回数组
Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...
- dapper 调用 存储过程返回值_数据库事务、存储过程、函数以及触发器之间的区别和联系...
一.[事务概念] 事务(Transaction)是指构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行. 1,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前 ...
- Java 调用存储过程 返回结果集
这里使用Oracle数据库的thin连接. 下面是存储过程SQL 1 createorreplaceprocedure proc3(stid in student.stuid%type, stname ...
最新文章
- ASP.NET Page和Response 输出js的区别
- lucene索引的删除和更新
- MS IDE 工程垃圾清理
- 另一种同步软件Unison的使用方法
- JVM Attach机制实现
- 文献记录(part92)--Graph regularized low-rank representation for submodule clustering
- SAP Fiori Elements原理介绍之类型为Value Help的Smart Field工作原理
- jenkins~集群分发功能和职责处理
- [Web 前端] 解决因inline-block元素导致的空白间距和元素下沉
- 刚进职场的程序员,请万分珍重你的第一份工作,不要轻易辞职!
- [转载] [转载] python set集合如何有序输出_python set集合的用法
- 第四届江西省高校网络安全技能大赛初赛WebMisc—Writeup
- linux给普通用户添加管理员权限,linux 赋予普通用户管理员权限
- Python-等额本息计算
- 问学计算机的同学买什么电脑,学生用的笔记本电脑什么样的好
- 【转】经典的劝酒令和挡酒词
- PHP关于生成6位唯一固定邀请码,附带加密解密(终于可以不用存数据库啦)
- R pdf大小_免费、开源、多平台支持的PDF文档处理软件 PDFsam Basic
- Android第一行代码-Fragment
- python 新闻摘要_每日新闻摘要:iPad Mini评论,AT&T首席执行官获得Robocall等等
热门文章
- flask+sqlite3+echarts2+ajax数据可视化--静态图
- 搭建高吞吐量 Kafka 分布式发布订阅消息 集群
- 安卓之上传文件,即HTTP提交表单
- windows7旗舰版系统自带组件IIS搭建ftp
- shutdown,halt,reboot,init
- [MySql] - 解决部署的服务器没有安装MySql Connector
- 对团队建设与管理的几点看法
- Java多线程初学者指南(12):使用Synchronized块同步变量
- Gateway网关-快速入门
- 手写自己的MyBatis框架-核心对象