spring中@param和mybatis中@param使用区别

article/2025/11/1 18:20:04
  1. spring中@param
    /*** 查询指定用户和企业关联有没有配置角色* @param businessId  memberId* @return*/int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 
  1. mybatis中的param
    /*** 查询指定用户和企业关联有没有配置角色* @param businessId memberId* @return*/int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 

从表面上看,两种并没有区别,但是在xml文件中使用的时候是有区别的,Spring中的@param在xml需要如下这样引用变量

<select id="selectRoleCount" resultType="java.lang.Integer" >
select count(tbm.id)from t_business_member_relation tbmwhere tbm.business_id = #{0,jdbcType=INTEGER}and tbm.member_id = #{1,jdbcType=INTEGER}and tbm.role_business_id is not null
</select>

是根据参数的顺序来取值的,并且从0开始。而在mybatis @param在xml中则是如下这样引用变量的

<select id="selectRoleCount" resultType="java.lang.Integer" >select count(tbm.id)from t_business_member_relation tbmwhere tbm.business_id = #{businessId,jdbcType=INTEGER}and tbm.member_id = #{memberId,jdbcType=INTEGER}and tbm.role_business_id is not null</select>

是通过参数名来引用的
注:如果Mapper.java文件中引用的是Spring的

org.springframework.data.repository.query.Param;

但是Mapper.xml中使用的是mybatis 的用法,那么就会如下的错误

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'businessId' not found. Available parameters are [1, 0, param1, param2]

截图如下
这里写图片描述
所以在使用的时候一定要注意@param引用和使用的一致性


http://chatgpt.dhexx.cn/article/SV6smdpc.shtml

相关文章

@Param注解的使用

Param注解的使用 动态代理接口向映射文件中传递参数的时候&#xff0c;会使用Param注解&#xff0c;并且如果动态代理接口使用了Param这个注解&#xff0c;那么映射文件中的标签中可以不用写parameterType属性&#xff0c;可以直接接收Param中传递来的参数值。 Param注解的使…

param参数服务器

param参数服务器 声明:本文主要内容来自: MOOC 机器人操作系统入门.仅仅是为了查阅方便,做了个小结,侵权必删! Table of Contents 零.param介绍 0.0 param有什么用 0.1参数类型 二.如何使用----三种维护方式 2.1命令行维护 2.2.launch文件 2.2.1 yaml文件 2.3node源码 …

C#——param关键字的使用

C#的param 关键字常用于对数据库进行操作的方法&#xff0c;通过param关键字可以防止SQL注入问题。 代码举例&#xff1a; static void Main(string[] args) {Console.WriteLine(Sum(1));Console.WriteLine(Sum(1, 2, 3));Console.WriteLine(Sum(1, 2, 3, 4, 5)); }private st…

深度学习中有关网络中的参数量(param)计算。附录有浮点计算量(FLOPs)的链接。

文章目录 网络中的参数量(param)和浮点计算量(FLOPs)的计算一、网络中的参数量(param)是什么&#xff1f;浮点计算量(FLOPs)是什么&#xff1f;二、如何计算网络中的参数量(param)网络中的参数量(param)的计算卷积层&#xff1a;计算公式&#xff1a; 池化层:全连接层:CONV->…

【详解】@Param注解的用法

1、概述 首先明确这个注解是为SQL语句中参数赋值而服务的。 Param的作用就是给参数命名&#xff0c;比如在mapper里面某方法A&#xff08;int id&#xff09;&#xff0c;当添加注解后A&#xff08;Param("userId") int id&#xff09;&#xff0c;也就是说外部想要取…

关于STM32例程中U8,U16,U32的问题

在看STM32例程的时候&#xff0c;发现对u8, u16&#xff0c;u32存在疑问。 使用go to definition时发现无法找到 然后项目管理栏上&#xff0c;发现stdio.h,stdint.h出现了感叹号警示 解决方式&#xff0c;打开微库 使用go to definition&#xff0c;还是没有&#xff0c;于是…

C语言用printf()打印u8,u16,u32等参数类型

想必大家都知道printf打印int 型是用%d,但是u8,u16,u32,u64还有s8,s16,s32,s64是如何打印呢&#xff0c;知道的大佬绕行哈&#xff0c;不知道往下看看。 what is u8? 常见的u8其实是自定义的&#xff0c;定义如下&#xff1a; typedef signed char s8; typedef unsigned …

LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)

阴码逐列 式顺向C51 格式 void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) { u8 temp,t1,t;u16 y0y;u8 csize(size/8((size%8)?1:0))*(size/2); //得到字体一个字符对应点阵集所占的字节数 numnum- ;//得到偏移后的值&#xff08;ASCII字库是从空格开始取…

【☠️️社死现场の老板来了☠️️】小伙,搞C语言嵌入式开发这么久了,还不知道u8、u16、u32、s8、s16、s32是什么意思啊?

老板来了&#xff1a; 糖糖小伙&#xff0c;你搞C语言嵌入式开发这么久了&#xff0c;我来考考你u8、u16、u32、s8、s16、s32是什么意思啊&#xff1f;你要是回答的让我满意了&#xff0c;给你升职加薪&#xff0c;从此走上人生巅峰呦~ 报告老板&#xff1a; 作为C语言后入式…

C语言中vu16什么意思,15.stm32 数据类型的定义(常用的U8,U16,U32到底代表什么)

满意答案 月冰p莹月 2020.09.14 采纳率&#xff1a;48% 等级&#xff1a;12 已帮助&#xff1a;9104人 去百度文库&#xff0c;查看完整内容> 内容来自用户:尘客i 在KeilMDK开发环境里&#xff0c;比如一个无符号32位整形数据会有很多种表示方法&#xff1a; 1&#xff0…

C语言中u8 u16 u32含义,有关stm32的问题,程序里面的u8、u16这些是什么意思啊

u8是unsigned char&#xff0c;u16是unsigned short&#xff0c;u32是unsigned long。 u8&#xff0c;u16&#xff0c;u32都是C语言数据类型&#xff0c;分别代表8位&#xff0c;16位&#xff0c;32位长度的数据类型&#xff0c;一个字节是8位&#xff0c;所以u8是1个字节&…

C语言中u8 u16 u32含义,有关stm32的问题,程序里面的u8、u16的含义

u8是unsigned char&#xff0c;u16是unsigned short&#xff0c;u32是unsigned long。 ; u8&#xff0c;u16&#xff0c;u32都是C语言数据类型&#xff0c;分别代表8位&#xff0c;16位&#xff0c;32位长度的数据类型&#xff0c;一个字节是8位&#xff0c;所以u8是1个字节&…

u32在c语言中的作用,c语言中u8,u16,u32(示例代码)

u8是unsigned char&#xff0c;u16是unsigned short&#xff0c;u32是unsigned long。 u8&#xff0c;u16&#xff0c;u32都是C语言数据类型&#xff0c;分别代表8位&#xff0c;16位&#xff0c;32位长度的数据类型&#xff0c;一个字节是8位&#xff0c;所以u8是1个字节&…

《C语言程序设计》实训报告

任务一顺序结构程序设计 1.编写已知半径r为15求圆面积的程序 文字&#xff1a; 1.定义一个变量r15&#xff1b; 2.让3.14与r*r相乘得的积为s&#xff1b; 3.输出s的值&#xff1b; 流程图&#xff1a; 代码&#xff1a; #include <stdio.h> int main() { double…

单片机c语言程序设计实训100例基于pic pdf,单片机C语言程序设计实训100例 基于AVR+Proteus仿真.pdf...

作 者 &#xff1a;彭伟编著 出版发行 : 北京&#xff1a;北京航空航天大学出版社 , 2010.05 ISBN号 &#xff1a;978-7-5124-0068-9 页 数 &#xff1a; 568 原书定价 : 65.00 主题词 : 单片微型计算机-C语言-程序设计 中图法分类号 : TP3 ( 工业技术->自动化技术、计算机技…

8051单片机的C语言程序设计

一、数据类型 &#xff08;一&#xff09;基本类型&#xff1a; 1. 位类型&#xff08;bit&#xff09;:1&#xff09;是C51的扩充数据类型&#xff0c;用于访问8051中可寻址的位单元。 2&#xff09;8051支持两种位类型&#xff1a;bit型和sbit类型&#xff0c;它们在内存中都…

c语言程序设计实训

任务一、顺序结构程序设计 1.编写已知半径r为15的圆面积 #include <stdio.h> int main() {double r, s, pi 3.14159;printf("请输入圆的半径为&#xff1a;");scanf_s("%lf", &r);s pi * r * r;printf("面积为&#xff1a;%f", s)…

51单片机基础实验例程

代码来源见代码注释。 Table of Contents 实验1&#xff1a;点亮第一个LED 实验2&#xff1a;LED闪烁 实验3&#xff1a;LED流水灯 实验4&#xff1a;蜂鸣器 实验5&#xff1a;静态数码管显示 实验6&#xff1a;动态数码管显示 实验7&#xff1a;独立按键 实验8&#x…

单片机c语言应用100例第3版课后答案,单片机C语言应用100例(第3版)

读者对象&#xff1a; 本书在编写时力求通俗、易懂&#xff0c;硬件原理以"有用、够用”为原则&#xff0c;内容讲解以"紧密结合实践”为特色。因此&#xff0c;本书特别适合单片机零起点的初学者使用&#xff0c;可作为高等院校控制类专业学生、电子爱好者及各类工程…

51单片机C语言程序100例分析(1)IO+C语言+头文件

51单片机C语言程序100例分析&#xff08;1&#xff09;IOC语言头文件 \\\插播一条&#xff1a;文章末尾有惊喜哟~/// P10xfe;//P111111110B&#xff0c;即P1.0输出低电平} 分析&#xff1a;通过这短短的几行代码就能够让51单片机的P1.0引脚输出低电平&#xff0c;首先#includ…