mybatis怎么调用mysql存储过程并获取返回值

mybatis调用mysql存储过程并获取返回值

1、mysql创建存储过程

#结束符号默认;, delimiter $$语句表示结束符号变更为$$delimiter $$CREATE PROCEDURE `demo`(IN inStr VARCHAR(100), out ourStr VARCHAR(4000))BEGINSET ourStr = '01';if (inStr == '02') then    set ourStr = '02';end if;END$$#结束符号修改delimiter ;

2、mybatis调用

(1)注解方式

// key1和key2都是参数map中的key// key1是需要传入存储过程的值// key2是用于接收存储过程返回的值,跟获取自增主键类似@Select("call demo('${key1}', #{key2, mode=OUT, jdbcType=VARCHAR})")@Options(statementType = StatementType.CALLABLE)String getDemoValue(Map map);

(2)xml方式

      call demo('${key1}', #{key2, mode=OUT, jdbcType=VARCHAR}) 

mybatis调存储过程遇到返回值null的坑

mybatis调存储过程时返回值null

就简单的一个存储过程

BEGIN   #SELECT COUNT(*) scount FROM test_user t WHERE t.user_sex=sex;   SELECT user_name userName FROM test_user t WHERE t.user_sex=sex;END

然后在Mybatis Mapper配置文件中

存了个图 存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17 查看详情 存了个图

         {           CALL queryCountBySexWithProcedure(              #{sex,jdbcType=VARCHAR,mode=IN},              #{userName,jdbcType=VARCHAR,mode=OUT}           )    }  

然后userName值null,这是为什么呢?在mapper.xml文件会做映射处理,而在存储过程中下方标红的属性 user_name并不会自动映射到userName 值中,所以调用userName值一定返回null。

BEGIN   #SELECT COUNT(*) scount FROM test_user t WHERE t.user_sex=sex;   SELECT user_name userName FROM test_user t WHERE t.user_sex=sex;END

那怎么处理这样问题呢?那就是加上INTO 关键字

BEGIN    #SELECT COUNT(*) scount FROM test_user t WHERE t.user_sex=sex;         SELECT user_name INTO userName FROM test_user t WHERE t.user_sex=sex;END

以上就是mybatis怎么调用mysql存储过程并获取返回值的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/271499.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
boss直聘怎么查看竞争力_boss直聘岗位竞争力分析功能使用
上一篇 2025年11月4日 12:34:48
win11怎么安装和配置WSL_Win11安装Linux子系统(WSL)详细指南
下一篇 2025年11月4日 12:34:50

相关推荐

  • MySQL触发器的定义与使用方法详解

    MySQL触发器的定义与使用方法详解MySQL触发器的定义与使用方法详解MySQL触发器的定义与使用方法详解MySQL触发器的定义与使用方法详解

    MySQL触发器的定义与使用方法详解 MySQL触发器是一种特殊的存储过程,可以在表发生特定事件时自动执行。触发器可以用于实现 数据的自动化处理、数据一致性维护等功能。本文将详细介绍MySQL触发器的定义与使用方法,并提供具体的代码示例。 触发器的定义在MySQL中,触发器的定义是通过CREATE …

    2026年9月25日 • 用户投稿
    000
  • MySQL大小写敏感的处理方式

    MySQL大小写敏感的处理方式MySQL大小写敏感的处理方式MySQL大小写敏感的处理方式MySQL大小写敏感的处理方式

    MySQL大小写敏感的处理方式及代码示例 MySQL是一种常用的关系型数据库管理系统,它在处理大小写敏感的问题时需要特别注意。在MySQL中,默认情况下是大小写不敏感的,即不区分大小写。但有时候我们需要进行大小写敏感的处理,这时可以通过以下方法来实现。 在创建数据库、表时指定默认字符集为Bin(二进…

    2026年9月25日 • 用户投稿
    000
  • MySQL版本更新情况分析

    MySQL版本更新情况分析MySQL版本更新情况分析MySQL版本更新情况分析MySQL版本更新情况分析

    MySQL版本更新情况分析 MySQL作为一款开源且使用广泛的关系型数据库管理系统,在不断地更新迭代版本以适应不断发展的需求和技术。本文将对MySQL版本更新情况进行分析,从历史版本演变到最新版本的特性进行探讨,并结合具体的代码示例展示MySQL版本更新带来的一些变化和优化。 1. MySQL历史版…

    2026年9月25日 • 用户投稿
    000
  • MySQL怎样设置字符集 UTF8与字符集转换全解析

    MySQL怎样设置字符集 UTF8与字符集转换全解析MySQL怎样设置字符集 UTF8与字符集转换全解析MySQL怎样设置字符集 UTF8与字符集转换全解析MySQL怎样设置字符集 UTF8与字符集转换全解析

    mysql字符集设置和转换的核心是统一使用utf8mb4以支持所有unicode字符,包括emoji。1. 服务器级别设置通过修改my.cnf或my.ini文件中的character-set-server和collation-server参数实现;2. 数据库级别在创建或修改数据库时指定charac…

    2026年9月25日 • 用户投稿
    100
  • 快速搭建一个管理App数据和用户的界面

    快速搭建一个管理App数据和用户的界面快速搭建一个管理App数据和用户的界面快速搭建一个管理App数据和用户的界面快速搭建一个管理App数据和用户的界面

    在电商、教育、企业服务等关键领域,app的数据管理效率与系统用户体验已成为决定产品市场竞争力的核心因素。本文将为开发者提供一套从需求分析到技术落地的完整路径,助你快速构建一个高效且易用的管理类app界面。 一、厘清需求:聚焦数据与用户场景的深度融合 构建管理型App的第一步是精准把握业务本质。必须深…

    2026年9月25日 • 用户投稿
    700
  • MySQL连接数简介及作用详解

    MySQL连接数简介及作用详解MySQL连接数简介及作用详解MySQL连接数简介及作用详解MySQL连接数简介及作用详解

    MySQL连接数简介及作用详解 一、MySQL连接数概述在MySQL数据库中,连接数是指同时连接到数据库服务器的客户端用户数量。连接数的大小限制了同时连接到数据库服务器的客户端数量,对于一个数据库服务器来说,连接数可能是一个重要的性能限制因素。在MySQL中,连接数是一个重要的配置参数,要合理设置连…

    2026年9月25日 • 用户投稿
    200
  • MySQL.proc表的功能及其在数据库中的角色

    MySQL.proc表的功能及其在数据库中的角色MySQL.proc表的功能及其在数据库中的角色MySQL.proc表的功能及其在数据库中的角色MySQL.proc表的功能及其在数据库中的角色

    MySQL.proc表的功能及其在数据库中的角色 MySQL是一个流行的关系型数据库管理系统,它提供了丰富的功能和工具来管理和操作数据库。其中,MySQL.proc表是一个存储过程的元数据表,用于存储关于数据库中存储过程、函数和触发器的信息。本文将介绍MySQL.proc表的功能及其在数据库中的角色…

    2026年9月25日 • 用户投稿
    100
  • 如何在mysql中配置慢查询阈值

    查看当前慢查询配置,确认slow_query_log、long_query_time和slow_query_log_file设置;2. 使用SET GLOBAL long_query_time=1设置阈值;3. 开启慢查询日志并指定日志文件路径;4. 修改my.cnf或my.ini配置文件,添加相关…

    2026年9月25日
    200
  • DeepSeek如何接入本地数据库 数据对接的配置方式与使用注意事项

    DeepSeek如何接入本地数据库 数据对接的配置方式与使用注意事项DeepSeek如何接入本地数据库 数据对接的配置方式与使用注意事项DeepSeek如何接入本地数据库 数据对接的配置方式与使用注意事项DeepSeek如何接入本地数据库 数据对接的配置方式与使用注意事项

    本文旨在介绍如何实现将数据对接至本地数据库,供使用DeepSeek或其他类似模型处理的应用程序进行访问。我们将概述整个过程,包括前期准备工作、详细的配置步骤以及在使用过程中需要注意的重要事项。通过阅读本文,您将了解从环境搭建到数据访问的核心环节,从而能够顺利地将您的本地数据与基于DeepSeek的应…

    2026年9月25日 • 用户投稿
    800
  • MySQL中文标题大小写区分问题探讨

    MySQL中文标题大小写区分问题探讨MySQL中文标题大小写区分问题探讨MySQL中文标题大小写区分问题探讨MySQL中文标题大小写区分问题探讨

    MySQL中文标题大小写区分问题探讨 MySQL是一个常用的开源关系型数据库管理系统,具有良好的性能和稳定性,在开发中被广泛应用。在使用MySQL过程中,我们经常会遇到大小写区分的问题,尤其是涉及到中文标题的情况下。本文将探讨MySQL中文标题大小写区分的问题,并提供具体的代码示例帮助读者理解和解决…

    2026年9月25日 • 用户投稿
    100
  • MySQL与SQL Server功能对比:哪个更适合您的业务需求?

    MySQL与SQL Server功能对比:哪个更适合您的业务需求?MySQL与SQL Server功能对比:哪个更适合您的业务需求?MySQL与SQL Server功能对比:哪个更适合您的业务需求?MySQL与SQL Server功能对比:哪个更适合您的业务需求?

    MySQL与SQL Server功能对比:哪个更适合您的业务需求? 在当今数字化时代,数据库技术扮演着至关重要的角色,其中MySQL和SQL Server是两个备受关注的关系型数据库管理系统。无论是中小型企业还是大型企业,选择适合自身业务需求的数据库管理系统至关重要。本文将对MySQL和SQL Se…

    2026年9月25日 • 用户投稿
    300
  • 参加PHP+MySQL就业培训后能获得的岗位有哪些

    参加php+mysql就业培训后,你可以获得以下岗位:1. web开发工程师,利用php和mysql开发动态网站和web应用程序;2. 后端开发工程师,使用php构建后端服务和api;3. 全栈开发工程师,结合前端技术进行全站开发;4. 数据库管理员,负责mysql数据库的设计、优化和维护;5. 软…

    2026年9月25日
    500
  • 如何在微服务之间共享静态数据

    如何在微服务之间共享静态数据如何在微服务之间共享静态数据如何在微服务之间共享静态数据如何在微服务之间共享静态数据

    微服务架构的本质决定了微服务之间无法直接共享静态变量。正如上面摘要所说,每个微服务都是一个独立的进程,拥有自己的内存空间,静态变量只在其所属的进程内有效。试图在一个微服务中访问另一个微服务的静态变量,就像试图在一个独立的Java程序中访问另一个程序的变量一样,是不可能的。 微服务架构的独立性 微服务…

    2026年9月25日 • 用户投稿
    100
  • 怎么用mysql创建数据表

    怎么用mysql创建数据表怎么用mysql创建数据表怎么用mysql创建数据表怎么用mysql创建数据表

    要在 MySQL 中创建数据表,请按照以下步骤操作:使用 CREATE TABLE 语句,指定表名。定义列名和数据类型,例如文本(varchar)、整数(int)、日期(date)等。根据需要设置约束,例如主键(PRIMARY KEY)、唯一约束(UNIQUE)或非空约束(NOT NULL)。使用分…

    2026年9月25日 • 用户投稿
    100
  • mysql怎么创建数据库关系图

    mysql怎么创建数据库关系图mysql怎么创建数据库关系图mysql怎么创建数据库关系图mysql怎么创建数据库关系图

    答案:可以通过使用 MySQL Workbench 工具创建 MySQL 数据库关系图。步骤:导入数据库。创建关系模型,将表和视图拖放到画布上。使用外键连接表。调整布局。生成关系图。 如何创建 MySQL 数据库关系图? MySQL 关系图是可视化表示数据库架构的图表,它显示了表之间的关系。创建关系…

    2026年9月25日 • 用户投稿
    100
  • mysql数据库怎么创建数据

    mysql数据库怎么创建数据mysql数据库怎么创建数据mysql数据库怎么创建数据mysql数据库怎么创建数据

    在 MySQL 数据库中创建数据涉及以下步骤:连接到数据库并选择目标数据库。使用 CREATE TABLE 语句创建数据表。使用 INSERT INTO 语句插入数据。使用 COMMIT 语句提交更改。 如何在 MySQL 数据库中创建数据 在 MySQL 数据库中创建数据是一个简单而直接的过程。以…

    2026年9月25日 • 用户投稿
    100
  • mysql怎么插数据命令行语句

    如何使用 mysql 命令行插入数据 在 MySQL 中,可以使用以下 INSERT 语句将数据插入到数据库中: INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …); 其中: table_name 是…

    2026年9月25日
    200
  • mysql创建数据库提示已存在怎么回事

    mysql创建数据库提示已存在怎么回事mysql创建数据库提示已存在怎么回事mysql创建数据库提示已存在怎么回事mysql创建数据库提示已存在怎么回事

    MySQL 创建数据库提示已存在的原因包括:数据库名称冲突、大小写敏感性、特殊字符限制、连接错误、权限问题、命名冲突和表名冲突。请检查并解决这些潜在原因。 MySQL 创建数据库提示已存在的原因 创建 MySQL 数据库时出现 “已存在” 提示,通常有以下几个原因: 1. 数…

    2026年9月25日 • 用户投稿
    100
  • mysql增删改查语句在哪写

    mysql增删改查语句在哪写mysql增删改查语句在哪写mysql增删改查语句在哪写mysql增删改查语句在哪写

    MySQL 增刪改查語句通常寫在以下位置:SQL 客户端(例如 MySQL Workbench)程式碼中外部檔案儲存程序 MySQL 增刪改查語句在哪裡寫? MySQL 增刪改查語句通常寫在以下位置: 1. SQL 客户端 例如,MySQL Workbench、phpMyAdmin 或命令行界面 (…

    2026年9月25日 • 用户投稿
    100
  • mysql下载好了从哪运行

    mysql下载好了从哪运行mysql下载好了从哪运行mysql下载好了从哪运行mysql下载好了从哪运行

    要运行 MySQL,请按照以下步骤操作:解压安装包运行安装向导选择自定义安装类型配置 MySQL 安装安装 MySQL启动 MySQL 服务使用客户端连接到 MySQL 如何运行 MySQL 下载 步骤 1:解压 MySQL 安装包 找到下载的 MySQL 安装包,通常是一个名为“mysql-ins…

    2026年9月25日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信