Java调用存储过程,使用JdbcTemplate

SpringBoot实战——详解JdbcTemplate操作存储过程 对于一些复杂的业务逻辑,使用存储过程可以提高数据库操作的效率和安全性。本文将详细介绍如何在SpringBoot项目中使用 JdbcTemplate 工具操作存储过程,方便地与数据库进行交互,调用存储过程。 阅读详情

1、sysDataSourceService是自定义的获取数据源服务

JdbcTemplate jdbcTempleDynamic = sysDataSourceService.getDataSourcePoolBySourceID(source_id);

2、使用jdbcTempleDynamic.execute调用存储过程,传入对应的所需参数

List<Map<String, Object>>  resultList = new ArrayList<Map<String, Object>>();
String sql="{call douzi_admin_v3.sp_drilling_search_v3(?,?,?,?,?,?,?)}"
resultList = (List<Map<String, Object>>) jdbcTempleDynamic.execute(
							new CallableStatementCreator() {
								public CallableStatement createCallableStatement(Connection con)
										throws SQLException {
								    String sql="{call douzi_admin_v3.sp_drilling_search_v3(?,?,?,?,?,?,?)}"
									CallableStatement cs=con.prepareCall(sql);
									cs.setString(1, item);
									cs.setString(2, target);
									cs.setString(3, beginTime);
									cs.setString(4, endTime);
									cs.setString(5, whereSql);
									cs.setString(6, timeType);
									cs.setLong(7, uid);
									cs.setString(8, lastkey);
									return cs;
								}
							},new CallableStatementCallback(){
								public Object doInCallableStatement(CallableStatement cs)
										throws SQLException, DataAccessException {
									cs.execute();
									List<Map<String, Object>> lastList = new ArrayList<Map<String,Object>>();  
									ResultSet rs = cs.getResultSet();
									ResultSetMetaData md = rs.getMetaData(); //获得结果集结构信息,元数据  
									int columnCount = md.getColumnCount();   //获得列数   
									//将JDBC ResultSet结果集转成List
									while(rs != null && rs.next()){
										//LinkedHashMap按输入顺序输出
										Map<String,Object> rowData = new LinkedHashMap<String,Object>();  
										for (int i = 1; i <= columnCount; i++) {  
											rowData.put(md.getColumnLabel(i), rs.getObject(i));//getColumnLabel()获取当前的字段名,getColumnName()获取数据库的字段名(别名没用)
										}  
										lastList.add(rowData);
									}
									return lastList;
								}
							}
						);
使用spring中的JdbcTemplate调用oracle中的有出入参数的存储过程 使用java spring中的JdbcTemplate调用oracle中的存储过程(该存储过程有入参还出参):存储过程: CREATE OR REPLACE PROCEDURE "HIS_BZ_QC"."PROC_APP_REGIST" ( Hosnum In Varchar2,--医院编号 App_Hid In Varchar2 阅读详情

相关推荐

光线追踪渲染实战:蒙特卡洛路径追踪及其c++实现

光线追踪超越了传统的图形流水线,是一种现代的渲染。光线追踪是一种基于物理的渲染方法,通过模拟光在介质中的真实表现来输出足以逼近现实的图像。光线从光源出发,经过各种反射折射,进入摄像机。通过渲染方程描述一点的颜色,并且通过蒙特卡洛方法求解渲染方程来获取最终的像素颜色。

AKGWSB 's blog 1万+

JdbcTemplate – 调用存储过程

则会自动为德比,MySQL,微软SQL服务器,甲骨文,DB2,系统库和后greSQL数据库检测“IN”和“OUT”参数。下面是在参数和搜索结果中获取搜索计数的简单存储过程。3.2. 一个春季SimplJdbc调用示例,用于在存储过程调用中获取多个结果集。3.1. 一个包含多个结果的简单存储过程,演示如何获取最近更新的语句的行计数。参数,并提供更清晰的方法来注册过程/函数/架构/目录名称和参数绑定。1.1. 简单的Mysql存储过程,用于按名称获取用户的搜索结果。若要调用存储的函数,请使用。

allway2的博客 4276

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

JdbcTemplate调用存储过程

JdbcTemplate调用存储过程! 过程语句为: --根据员工编号,查询所在部门名称和职位信息 create or replace procedure getDnameJob(empno1 in varchar2,dname2 out varchar2,job2 out varchar2) is begin select e.job,d.dname into job2,dname2 from ...

weixin_42756198的博客 5894

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 466

【Simscape】用Simscape实现三维物理仿真(三)——创建一个滑块单摆系统

1 首先创建一个Simscape Multibody 模型 (方法见 【Simscape】用Simscape实现三维物理仿真(一)——创建一个自由落体小球) 2 创建四个Solid模块 (1)摆杆 Shape : Brick Dimensions : [0.1 0.05 1] m (2)摆杆轴 Shape : Cylinder Radius : 0.02 m Le...

ReadAir的专栏 9036

Spring使用JdbcTemplate项目中执行存储过程

1、Connection为全局变量,进行获取连接和释放连接如果发生请求并发时存在 线程异常,导致Connection获取连接不到并导致异常“java.sql.SQLRecoverableException: 关闭的语句”2、CallableStatement 在获取资源后也没有 close,正常需要先关闭statement对象,在关闭Connection对象。以上结果导致,在多个并发请求后,会导致绝大多是请求发生异常,返回数据为空。

weixin_43188446的博客 774

库存优化技术提升电商效率

第一部分:库存优化技术基础 第1章:库存优化的基本概念 库存优化是现代电商运营中至关重要的一个环节。简单来说,库存优化指的是通过一系列的策略和技术手段,使得库存管理更加高效、准确,从而降低运营成本,提高销售额。 1.1 库存优化的定义与重要性

AI天才研究院 1248

SpringBoot专栏|动态数据源抽取数据库数据

应用场景 根据用户配置的数据源动态的抽取或者查询该数据库的数据,应用场景还是比较多的,比如BI系统,动态配置多个数据源,无需重启,即可抽取数据 开题前 之前一直以为动态抽取数据是特别高深的技能点,总是望而却步,最近整理元数据系统时用到了该功能,查了部分资料,找了一种算是比较简单的方法(其它的还未尝试,欢迎小伙伴推荐) 正文 1.比如通过页面配置数据源链接,统一管理数据源。 2....

十年呵护的专栏 1848

194、产线 Camera 校准与测试:终检测试项、规格线制定与量产数据监控

摘要: 文章通过"绿屏门"案例揭示了产线Camera校准测试中的关键问题,提出了系统性改进方案。在终检测试方面,建议增加多增益暗电流测试、混合光源色温测试和径向亮度梯度测试,覆盖用户真实场景。规格线制定强调用CPK替代固定百分比,区分硬软规格并建立动态调整机制。量产监控需关注参数趋势、边界模组分布,构建失效模式数据库。实践建议包括测试冗余设计、规格余量预留、自动化监控、供应商数据共享和人工抽检保留。文章指出Camera产线质量管控需形成"测试设计-规格优化-数据监控"闭环,以数据驱动决策避免客诉风险。

sundong_81的博客 192

【雕爷学编程】Arduino智能家居之DS18B20温度传感器

1、温度和湿度控制:通过连接温度传感器和湿度传感器,Arduino可以实时监测室内环境的温度和湿度,并通过控制空调、加热器或加湿器等执行器,实现室内温湿度的自动调节。设计用户友好的界面和操作方式,提供简单直观的控制和反馈机制,以及考虑用户习惯和需求,能够提升系统的整体用户体验。这意味着用户可以根据自己的需求和创意,自定义和定制智能家居系统的功能和外观。5、能源管理:Arduino可以与电能监测模块和智能插座等设备结合使用,实时监测家庭能源的使用情况,并通过自动控制电器设备的开关,实现能源的有效管理和节约。

雕爷学编程 2875

Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用

一、调用存储过程 方式一: /** * 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中); * List.get(0)= hsTable; //存放分页信息(tableName/token/pageNo/pageSize/recordsCount/pagesCount)--hsTable.get(key) * List.get(1)= record

hu_shengyang的专栏 1万+

白话讲解帕累托前沿点(Pareto Frontier)基础知识与实例解析

排除所有“劣解”,缩小决策范围;量化目标间的“权衡关系”(如“每增加1千元成本,续航提升多少小时”);支持不同场景下的个性化选择,平衡冲突目标。无论是手机选购、汽车设计,还是城市规划,帕累托前沿都是从“混乱的多目标”到“清晰的权衡”的关键桥梁,是现代决策科学中不可或缺的工具。通过数学建模,工程很多问题都可以建模成帕累托前沿求解问题,通过线性规划CPLEX、Gurobi 等优化工具,可以方便进行求解。

2138

Java jdbcTemplate调用Oracle存储过程,入参为list的记录

-创建自定义数据对象 CREATE OR REPLACE TYPE xm_object AS OBJECT(O_A NVARCHAR2(10) , O_B NVARCHAR2(2000) ,);--以自定义对象创建临时表 CREATE OR REPLACE TYPE xm_table AS TABLE OF xm_object;

fengyefate的博客 773

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring JdbcTemplate 与原生 JDBC 调用 Oracle 存储过程/存储函数,Oracle Java 驱动下载

目录 前 言 调用无返回值的存储过程 调用单个返回值的存储过程 调用多个返回值的存储过程 前 言 1、关于 JdbcTemplate 的介绍、pom 依赖、DI 注入可以参考《Spring JdbcTemplate 模板剖析 之 常用 增删改查》,本文继续介绍 JdbcTemplate 调用数据库的存储过程,虽然 Mysql 也有存储过程,但是为了尽可能的多覆盖一点,本文选择调用 .........

蚩尤后裔-汪茂雄 7179

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java (jdbctemplate)中使用存储过程

(Java (jdbctemplate)中使用存储过程)

springsdl的博客 2415

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[Java]通过Jdbc调用存储过程

Template.getDataSource().getConnection(); cs = conn.prepareCall(sqlLibrary.EventLog_listEventLogByAppIdNStatus); conn.setAutoCommit(false); cs.setString(1, app_flag); cs.setString(2, status); cs.setString(3, eventMaxCount); cs.regis

jameskaron的专栏 334

使用JdbcTemplate调用数据库存储过程

使用Jdbc调用存储过程相信大多数朋友在开发过程中都会用到,本例使用一个工具类将调用存储过程的方法封装起来,隐藏了大部分的处理逻辑,使用起来还是很方便的。 package com.coolfancy; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.Connection;

fancy888的专栏 1182

spring的JdbcTemplate操作oracle的存储过程

场景: 使用java代码调用oracle的存储过程,本例使用JdbcTemplate模板类操作. 功能: 方便后续查阅. 1.JdbcTemplate调用存储过程(Procedure)不带返回值 1.1存储过程 CREATE OR REPLACE PROCEDURE PRO_QUERY_INFO_ARGS4(TASK_ID IN NUMBER) IS BEGIN INSER...

zhangbeizhen18的博客 2364

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

spring jdbctemplate调用存储过程,返回list对象方法:/*** 调用存储过程* @param spName*/@SuppressWarnings("unchecked")public List> executeSP(String procedure) {//procedure = "{call WCITY2_STATISTIC.sp_uservisit_stat(?)}"...

weixin_42295528的博客 489

JdbcTemplate调取SqlServer的存储过程

JdbcTemplate调取SqlServer存储过程

weixin_36027383的博客 613

java 存储过程 数组_jdbctemplate调用存储过程传递数组参数

1.java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot cast to oracle.jdbc.connection2.无效的列名称类型[@more@]第一个错误的解决分为两步:先把从jndi获取的数据源的connection转换为nativeConnection,转换的方法是:con = con.getMet...

weixin_35990295的博客 425

[jdbctemplate+POSTGRESQL+存储过程]jdbc调用存储过程顺便勘误同时给出几个较好的配合方式

前言 关于postgresql的多结果集,或者游标返回存储过程请查看上篇文章: 【转载】postgresql存储过程中返回类型 本篇文章主要是为了将游标cursor的返回结果实用化而作出各种猜测及调整。目的在于找到java+pg数据库存储过程的最佳开发模式及调用方式。 必要数据及代码交代 数据表: 地区区域表一张,数据量大约30000条,不过不是重点,表结构如下: &amp;amp;amp;quot;id&amp;amp;amp;quot; int4 DEFAUL...

一名普通码农的菜地 5911

java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用...

一、调用存储过程方式一:/*** 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中);* List.get(0)= hsTable; //存放分页信息(tableName/token/pageNo/pageSize/recordsCount/pagesCount)--hsTable.get(key)* List.get(1)= recordsList; //存放分页查询所获...

weixin_28730549的博客 423

使用Spring JdbcTemplate调用存储过程

使用Spring JdbcTemplate调用存储过程  Spring的SimpleJdbcTemplate将存储过程的调用进行了良好的封装,但可惜只能用于jdk1.5的环境,无法再jdk1.4环境下使用,而JdbcTemplate则完全适用于jdk1.4下的环境,下面列出使用JdbcTemplate调用Oracle存储过程的一些方法:  一) 无返回值的存储过程调用  存储过程:  

xwq911的专栏 614

java spring 调用mysql存储过程_Spring-JdbcTemplete调用Mysql存储过程

org.springframework.jdbc.object.StoredProcedure 这是一个抽象类,通过declareParameter方法来声明存储过程的输入输出参数,再由execute方法来调用存储过程。org.springframework.jdbc.core.SqlParameter 用来代表存储过程的参数。org.springframework.jdbc.core.Resul...

weixin_35569211的博客 287
上一篇: java多线程的使用
下一篇: list中map将根据某几个key值相等的累加
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值