iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mybatis如何调用mysql存储过程
  • 247
分享到

mybatis如何调用mysql存储过程

2023-06-26 06:06:01 247人浏览 泡泡鱼
摘要

这篇“mybatis如何调用mysql存储过程”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“mybatis如何调用Mysql存储过程”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇

这篇“mybatis如何调用mysql存储过程”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“mybatis如何调用Mysql存储过程”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。

一、接收一个返回值

使用Map接收返回参数,output参数放在传入的param中

创建表

DROP TABLE IF EXISTS `demo`;CREATE TABLE `demo` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; -- ------------------------------ Records of demo-- ----------------------------INSERT INTO `demo` VALUES ('1', '测试');

创建存储过程

DROP PROCEDURE IF EXISTS pro;CREATE PROCEDURE pro (IN userId INT,OUT userCount INT)BEGIN DECLARE user_name VARCHAR (64);SELECT NAME FROM demo WHERE id = userId INTO user_name;INSERT INTO demo (NAME) VALUES (user_name);SELECT COUNT(*) FROM demo INTO userCount; END;

mapper.xml

<select id="procedureTest" parameterMap="pm" statementType="CALLABLE">        CALL pro(#{userId,mode=IN},#{userCount,mode=OUT,jdbcType=INTEGER});    </select>     <parameterMap id="pm" type="java.util.Map">        <parameter property="userId" jdbcType="INTEGER" mode="IN"></parameter>        <parameter property="userCount" jdbcType="INTEGER" mode="OUT"></parameter>    </parameterMap>

service

@Override    public void procedureTest() {        Map<String, Object> param = new HashMap<>();        param.put("userId", "1");        demoMapper.procedureTest(param);        System.out.println("输出结果是:"+param.get("userCount"));    }

输出结果

mybatis如何调用mysql存储过程

mybatis如何调用mysql存储过程

参数名不一定和存储过程一样,只和传参顺有关,使用下图配置同样可以获取结果

System.out.println("输出结果是:"+param.get("userCount_2"));

mybatis如何调用mysql存储过程

注意事项:

  存储过程的参数和名称无关,只和顺序有关系

  存储过程的output参数,只能通过传入的map获取

  存储过程返回的结果集可直接用返回的map接收

  存储过程的return结果需要使用?=call procName(?,?)的第一个参数接收,需要指定对应的mode为OUT类型

  存储过程对应的数据类型为枚举类型,需要使用大写,如VARCHAR

output是在存储过程中的参数的返回值(输出参数),而ReturnValue是存储过程返回的值(使用return关键字),一个存储过程可以有任意多个依靠参数返回的值,但只有一个ReturnValue。

存储过程主要分成三类:

返回记录集的存储过程:执行结果是一个记录集,例如,从数据库中检索出符合某一个或几个条件的记录。

返回数值得的存储过程(也可称为标量存储过程),其执行完后返回一个值,例如数据库中执行一个有返回值的函数或命令。

行为存储过程,用来实现数据库的某个功能,而没有返回值,例如在数据库中的更新和删除操作。

二、接收list结果集

使用list接收

mybatis如何调用mysql存储过程

@Override    public void procedureTest() {        Map<String, Object> param = new HashMap<>();        param.put("userId", "1");        List<?> list = demoMapper.procedureTest(param);        System.out.println("输出结果是:" + param.get("userCount_2"));        System.out.println("输出集合:" + list.size());    }
 <select id="procedureTest" parameterMap="pm" statementType="CALLABLE" resultMap="rm">        CALL pro(#{userId,mode=IN},#{userCount_2,mode=OUT,jdbcType=INTEGER});    </select>     <parameterMap id="pm" type="java.util.Map">        <parameter property="userId" jdbcType="INTEGER" mode="IN"></parameter>        <parameter property="userCount_2" jdbcType="INTEGER" mode="OUT"></parameter>    </parameterMap>     <resultMap id="rm" type="com.CSStj.srm.entity.procedureTestEntity">        <result column="id" property="id"></result>        <result column="name" property="userName"></result>    </resultMap>

三、返回多个结果集

mybatis如何调用mysql存储过程

mybatis如何调用mysql存储过程

mybatis如何调用mysql存储过程

mybatis如何调用mysql存储过程

四、第二种配置也可以

CALL s_generatePlan_new (#{organizationId, mode=IN,jdbcType=VARCHAR},#{gradeId, mode=IN,jdbcType=VARCHAR},#{semesterId, mode=IN,jdbcType=VARCHAR},#{className, mode=IN,jdbcType=VARCHAR},#{employeeCode, mode=IN,jdbcType=VARCHAR},#{courseName, mode=IN,jdbcType=VARCHAR},#{classroomName, mode=IN,jdbcType=VARCHAR},#{approverId, mode=IN,jdbcType=VARCHAR},#{createBy, mode=IN,jdbcType=VARCHAR},#{total,mode=OUT ,jdbcType=VARCHAR})

感谢你的阅读,希望你对“mybatis如何调用mysql存储过程”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: mybatis如何调用mysql存储过程

本文链接: https://www.lsjlt.com/news/307284.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis如何调用mysql存储过程
    这篇“mybatis如何调用mysql存储过程”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“mybatis如何调用mysql存储过程”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇...
    99+
    2023-06-26
  • MyBatis如何调用存储过程与存储函数
    目录1、MyBatis调用存储过程2、MyBatis调用存储函数1、MyBatis调用存储过程 MyBatis支持使用存储过程的配置。当使用存储过程时,需要设置一个参数“mode”,...
    99+
    2024-04-02
  • mysql如何调用存储过程
    在MySQL中调用存储过程可以使用CALL语句。语法如下:```CALL procedure_name([parameter1, parameter2, ...]);```其中,procedure_name是存储过程的名称,parame...
    99+
    2023-08-11
    mysql
  • mysql 中如何调用存储过程
    mysql 中如何调用存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  MySQL调用存储过程必须要使用call语句调...
    99+
    2024-04-02
  • mysql中如何调用存储过程
    这篇文章主要讲解了“mysql中如何调用存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中如何调用存储过程”吧! ...
    99+
    2024-04-02
  • PHP如何调用MySQL存储过程
    这篇文章主要介绍了PHP如何调用MySQL存储过程的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP如何调用MySQL存储过程文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2023-04-21
    php mysql
  • Mybatis调用MySQL存储过程的简单实现
    1.存储过程的简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该...
    99+
    2023-05-31
    mybatis 调用 存储过程
  • php中如何调用mysql存储过程
    今天就跟大家聊聊有关php中如何调用mysql存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。存储过程和函数是MySql5.0刚刚引入的。关于...
    99+
    2024-04-02
  • 我们如何调用MySQL存储过程?
    借助CALL语句,我们可以调用MySQL存储过程。为了让它理解,我们正在调用 allrecords() 存储过程 -mysql> CALL allrecords(); +------+---------+------------+--...
    99+
    2023-10-22
  • mybatis怎么调用oracle存储过程
    在MyBatis中调用Oracle存储过程可以通过使用select或update语句执行存储过程的方式来实现。以下是一个示例: &l...
    99+
    2024-04-09
    mybatis oracle
  • Mysql中如何调试存储过程
    小编给大家分享一下Mysql中如何调试存储过程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且M...
    99+
    2023-06-20
  • Mybatis中怎么调用Oracle存储过程
    Mybatis中怎么调用Oracle存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1:调用无参数的存储过程。创建存储过...
    99+
    2024-04-02
  • oracle如何调用存储过程
    要调用Oracle存储过程,可以按照以下步骤进行操作:1. 使用Oracle SQL Developer或其他数据库客户端连接到Or...
    99+
    2023-08-22
    oracle
  • ado如何调用存储过程
    小编给大家分享一下ado如何调用存储过程,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!你可以在安装ADO调用存储过程中。但它的功能没有Oracle或Microsoft那么多。而且,当然,Data Direct有一个本地的d...
    99+
    2023-06-17
  • LinQ如何调用存储过程
    这篇文章主要介绍了LinQ如何调用存储过程,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。下面我们来看看LinQ在分页和LinQ调用存储过程上的一些基本操作,当然将要举例的存储...
    99+
    2023-06-17
  • 一个MySQL存储过程如何调用它内部的另一个MySQL存储过程?
    一个 MySQL 存储过程很可能可以调用其内部的另一个 MySQL 存储过程。为了演示这一点,我们举一个例子,其中一个存储过程将调用另一个存储过程来找出last_insert_id。示例mysql> Create table empl...
    99+
    2023-10-22
  • mybatis调用存储过程的实例代码
    一、提出需求  查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name va...
    99+
    2023-05-31
    mybatis 存储过程
  • mysql存储过程用什么调用
    调用 mysql 存储过程的方法有:call 语句execute 语句预处理语句,分步骤为:a. 准备预处理语句b. 设置参数值c. 执行预处理语句d. 清理预处理语句 MySQL 存...
    99+
    2024-04-22
    mysql
  • mybatis调用mysql存储过程并获取返回值方式
    目录mybatis调用mysql存储过程并获取返回值1、mysql创建存储过程2、mybatis调用mybatis调存储过程遇到返回值null的坑mybatis调存储过程时返回值nu...
    99+
    2024-04-02
  • 如何在MySQL中创建和调用存储过程
    在MySQL中,可以使用以下步骤来创建和调用存储过程: 创建存储过程: DELIMITER // CREATE PROCEDUR...
    99+
    2024-04-09
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作