java 调用 mysql存储过程
在工作中经常会有需要通过java去调用存储过程的情况,实际工作中可能会有N多个存储过程,各自实现相应的业务场景,而我们需要在不同的地方知道调用某个存储过程,比如从前端请求某个存储过程,或者别的业务模块通过接口调用某个存储过程,那么能不能写个通用的方法去完成,答案是肯定的,此处以mysql为例,废话不多上代码:
mapper类定义方法
public interface SysUtilMapper {/*** * @param param 存储过程参数,包括存储过程名称 输入输入参数表达式 输入参数值* @return*/Map<String,Object> callProcedure(Map<String,Object> param);
}
Mapper.xml 定义
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.*.*.mapper.SysUtilMapper"><!-- 存储过程调用 --><select id="callProcedure" parameterType="java.util.Map" statementType="CALLABLE" resultType="java.util.Map">{call ${procName} (${paramExp})}</select>
</mapper>
Service定义
@Service
public class SysUtilService {@Autowiredprivate SysUtilMapper utilMapper;public Map<String,Object> callProcedure(Map<String,Object> param){return utilMapper.callProcedure(param);}
}
接下来就是调用了
/**** @param prcoName存储过程名称* @return*/@ApiOperation(value = "存储过程调用", notes = "存储过程调用")@PostMapping("/doCallProc")@ResponseBodypublic AjaxResult doCallProc(@RequestParam String prcoName){log.info("执行存储过程调用");//存储过程调用Map<String,Object> procParam=new HashMap<>();//存储过程名称procParam.put("procName",prcoName);//存储过程参数 如果是带有输入输出参数的存储过程 拼接参数字符串:一个参数 '# {paramName,mode=modeType,jdbcType=Type}'// modeType: IN OUT Type:VARCHAR 等//同时 有入参的话 map在插入 参数名:参数值 的键值对procParam.put("paramExp","#{in_value,mode=IN,jdbcType=VARCHAR},#{out_code,mode=OUT,jdbcType=VARCHAR},#{out_desc,mode=OUT,jdbcType=VARCHAR}");procParam.put("in_value","测试输入值");Map<String,Object> result=utilService.callProcedure(procParam);System.out.println("执行结果"+result.get("out_code")+result.get("out_desc"));}
方法中外部输入的只有存储过程名称,当然输入参数也可从外部输入,相应增加即可。
至此,大功告成!
java 调用 mysql存储过程相关推荐
- java 调用mysql存储过程
1 import java.sql.CallableStatement; 2 import java.sql.Connection; 3 import java.sql.DriverManager; ...
- Java调用MySQL并返回数据_Java调用MySQL存储过程并获得返回值的方法
本文实例讲述了Java调用MysqL存储过程并获得返回值的方法.分享给大家供大家参考.具体如下: private void empsInDept(Connection myConnect,int de ...
- Java调用mysql的存储过程
在之前写过一篇博客是如何mysql如何创建存储过程,在这一节中,我们是在原来的基础上来进一步的学习,如何在Java程序中使用Java代码来调用mysql存储过程. mysql创建存储过程:http:/ ...
- 【Java】 # 使用java调用MySQL的函数、存储过程
1. 存储过程 1.1 创建函数(代码创建) -- 修改 MySQL 默认的语句结束符号 delimiter $-- 创建函数 CREATE FUNCTION add_sum(num1 INT, nu ...
- hibernate mysql 存储过程_hibernate调用mysql存储过程
hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...
- jsp实现mysql存储过程_JSP调用MySQL存储过程收藏
JSP调用MySQL存储过程收藏 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {c ...
- jdbc mysql 存储过程查询数据_jdbc调用mysql存储过程实现代码
1. 创建存储过程 建立一个MySQL的存储过程 add_pro 复制代码 代码如下: delimiter // drop procedure add_pro // create procedure ...
- vb获得mysql的值,VB.NET调用MySQL存储过程并获得返回值的方法
本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法.分享给大家供大家参考.具体实现方法如下: Dim myConnectionString As String = "Data ...
- mysql存储过程 php_PHP调用MYSQL存储过程实例
说一下 在PHP页面中调用MYSQL存储过程的方法 以下是几个例子 仅供参考 实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') ...
最新文章
- 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)...
- fedora,linux mint 命令行(终端)打开目录
- stl 基于哈希的map c++_【C++】一文带你入门 STL
- 阿里技术大神:你没做错啥,你错在啥都没做
- 路畅安卓最新固件升级_Airpods连接安卓手机音量异常(airpods固件升级)
- 基本类型与字符串的相互转换
- python单例模式和装饰器
- facade(外观)模式
- 计算机输入法如何显示在桌面快捷方式,笔记本win7系统如何设置搜狗手写输入法桌面快捷方式...
- 每天学点5G-5G NEF
- 什么是CGCS2000坐标系
- matlab 图例自定义,matlab实现自定义曲线图以及图例
- 【影音工具集合】本文记录了影音工作者常用的好用的工具软件(持续更新中)
- 传世单机版怎么建立服务端?
- 中泰证券何波:XTP为量化而生!
- 如何转换为YOLO txt格式
- 阿里巴巴的P8Java架构师都是一群什么样的存在?
- SECS/GEM/GEM300/EAP 讲解(三)半导体协议
- WEB——Request与Response
- redis数据丢失及解决