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

解读Autoware.Universe规划模块:Behavior Path Planner Behavior Path Planner是一个基于行为生成不同形态路径的路径规划器,负责生成 基于交通状况的路径(path), 车辆可以移动的可行驶区域(drivable area)(在路径消息中定义), 将被发送到车辆接口的转向信号(turn signal) 命令。 阅读详情

https://blog.youkuaiyun.com/gao36951/article/details/44258217

  1. spring中@param
    /**
      * 查询指定用户和企业关联有没有配置角色
      * @param businessId  memberId
      * @return
      */
     int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. mybatis中的param
    /**
      * 查询指定用户和企业关联有没有配置角色
      * @param businessId memberId
      * @return
      */
     int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

<select id="selectRoleCount" resultType="java.lang.Integer" >
select 
    count(tbm.id)
    from t_business_member_relation tbm
    where tbm.business_id = #{0,jdbcType=INTEGER}
    and tbm.member_id = #{1,jdbcType=INTEGER}
    and tbm.role_business_id is not null
</select>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

<select id="selectRoleCount" resultType="java.lang.Integer" >
    select 
    count(tbm.id)
    from t_business_member_relation tbm
    where tbm.business_id = #{businessId,jdbcType=INTEGER}
    and tbm.member_id = #{memberId,jdbcType=INTEGER}
    and tbm.role_business_id is not null
 </select>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

但是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]
  • 1

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




第67步 时间序列建模实战:ARIMA建模(Stata) 阅读详情

相关推荐

保姆级教程:用SSH手动重建黑群晖RAID1阵列,修复‘存储空间损毁’

本文提供了一份详细的SSH手动重建黑群晖RAID1阵列的教程,帮助用户修复‘存储空间损毁’问题。通过深入解析mdadm软RAID的底层逻辑,从诊断到重建的全过程,确保用户能够掌握黑群晖存储池的修复技术。适用于技术爱好者和系统管理员。

weixin_30319153的博客 294

Spring中的@Param注解

注:在不使用@Param注解的时候,函数的参数只能为一个,并且在查询语句取值时只能用#{},且其所属的类必须为Javabean,而使用@Param注解则可以使用多个参数,在查询语句中使用时可以使用#{}或者${} 一.xml形式 实例一 @Param注解单一属性 Public User selectUser(@param(“userName”) String name, @param(“userp...

qq_43755954的博客 6619

多视图学习 (Multi-View Learning)

多视角/多视图学习(Multi-view learning)是陶大成提出的一个研究方向。我们都知道,在机器学习中样本可以用不同的特征(如图片可以用LBP、SIFT等特征)来表示,或者从不同的角度进行观察(如从前后左右观察一个对象),甚至是采用不同的传感器来观测(如RGB摄像头,Depth摄像头),这些不同的观测手段、角度或特征在多视角学习中称为“视角”。多视角学习通过对不同的视角进行统一分析和研究,希望能够得到更好的分类或聚类等等的效果。

CarpeDiem 3万+

简述@GetMapping、@PostMapping和@RequestMapping的区别

区别如下: @GetMapping:用于将HTTP get请求映射到特定处理程序的方法注解 具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。 @PostMapping:用于将HTTP post请求映射到特定处理程序的方法注解 具体来说,@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写 @PostMapping:可以指定GE

haohaoxuexiyai的博客 2996

RK3506开发板实战:5分钟搞定开源鸿蒙OpenHarmony5.1+星闪功能配置

本文提供了一份基于RK3506开发板快速配置开源鸿蒙OpenHarmony 5.1并启用星闪功能的实战指南。文章详细介绍了从开发环境搭建、系统镜像编译烧录,到星闪驱动加载验证、应用开发及性能调优的全流程,帮助开发者高效上手,将新一代短距无线通信技术应用于物联网项目。

time3的博客 657

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

项目同时使用spring+ mybatis与ibatis 开发

项目同时使用spring+ mybatis与ibatis 开发. 在开发时,项目比较老旧,原有的orming工具是 spring+ibatis进行的数据库操作. ibatis 目前已知的代码生成工具是 eclipse 下的Abator ,但是已经很久没有更新了.原有的都需要手写各种dao,DTO SQLmap,效率太低而且容易出错.决定采用并行的方式进行同时使用. 原项目配置 pom文件 <!--ibatis --> <dependency> <groupId>o

weixin_38546942的博客 1271

【数据集6】全球人工不透水面积GAIA(清华数据)

全球人工不透水面GAIA简介及其应用

WW、forever的博客 3808

spring mvc框架params的使用

1.params解决参数名字输入错误,而方法delete仍然会执行的效率低下问题 @RequestMapping(value="/delete") public String delete(Integer id, Model m) { System.out.println("执行delete方法"); userService.deleteUser(id); return "red...

qq_40180411的博客 1380

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比

AI人人懂 2789

汽车标定技术(七)--英飞凌TC3xx_Overlay实现页切换

今天说要开个专栏讲讲XCP标定,但在将标定之前,先把英飞凌专门为标定功能设计overlay功能讲解清楚。

认真搞搞汽车MCU 4022
上一篇: @Param在Mybatis中的使用
下一篇: Mybatis传多个参数(三种解决方案)
周末去看海
博客等级 码龄9年 50粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值