首页 > 其他分享 >spring中@Param和mybatis中@Param使用区别(暂时还没接触)

spring中@Param和mybatis中@Param使用区别(暂时还没接触)

时间:2022-10-12 23:36:28浏览次数:48  
标签:business businessId spring Param tbm mybatis id

1、spring中@Param(org.springframework.data.repository.query.Param)
int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long
2、mybatis中param(org.apache.ibatis.annotations.Param)
int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long
从表面上看,两种并没有区别,但是在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>
是根据参数的顺序来取值的,并且从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>

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

 注:如果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]

标签:business,businessId,spring,Param,tbm,mybatis,id
From: https://blog.51cto.com/u_15773967/5751860

相关文章

  • 解决springBoot启动报错Failed to obtain JDBC Connection; nested exception is java
    FailedtoobtainJDBCConnection;nestedexceptionisjava.sql.SQLNonTransientConnectionException:CLIENT_PLUGIN_AUTHisrequired意思是获取JDBC连接失败,导致的......
  • SpringMVC简介
    SpringMVC简介大部分Java应用都是Web应用,展现层是WEB应用不可忽略的重要环节.Spring为了展现层提供了一个优秀的WEB框架-SpringMVC . 和众多的其他WEB框架一样,它基于......
  • Springmvc简介
    ​SpringMVC简介大部分Java应用都是Web应用,展现层是WEB应用不可忽略的重要环节.Spring为了展现层提供了一个优秀的WEB框架-SpringMVC . 和众多的其他WEB框架一样,......
  • SpringBoot 自定义注解 实现多数据源
    SpringBoot自定义注解实现多数据源前置学习需要了解注解、Aop、SpringBoot整合Mybatis的使用。数据准备基础项目代码:https://gitee.com/J_look/spring-boot-all-dem......
  • stringboot 报错 org.springframework.boot.autoconfigure.web.WebMvcAutoConfigurati
    stringboot报错org.springframework.boot.autoconfigure.web.WebMvcAutoConfigurationjava.lang.IllegalArgumentException:Couldnotfindclass[org.springfr......
  • Mybatis---动态查询(choose,when,otherwise)
    choose(when,otherwise)标签有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为true,就会执行if标签中的条件。MyBat......
  • SpringBoot整合Kafka集群
    前言SpringBoot中集成Kafka,主要目的干啥呢,当然消息推送啦。不同系统之间,自身系统不同组件之间消息通信的一种方式,也可以是使用MQ。使用消息系统的目的主要就是为了解耦、......
  • 7.0 Spring启动过程源码解析
    前言一般来说,spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程spring的启动主要做了这么几件事情:构造一个BeanFactory对象解析配置类,得到BeanDe......
  • 6.0 Spring推断构造方法
    首先基础常识一个类通常有两个构造方法,一个有参的,一个无参的。对象创建默认使用无参构造。在spring中,只有一个无参的构造方法,那么实例化就只能使用这个无参构造。一、只......
  • 项目整合spring邮箱starter
    邮件发送的基本过程与概念(摘自小滴课堂大课)邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中电子邮箱:用户......