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

转载 2017年01月03日 14:39:09
  1. spring中@param
    /**
      * 查询指定用户和企业关联有没有配置角色
      * @param businessId  memberId
      * @return
      */
     int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 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
  • 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
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

org.springframework.data.repository.query.Param;
  • 1
  • 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
  • 1

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

相关文章推荐

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

spring中@param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return...

Spring中@Param和Mybatis中的@Param

spring中@param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return...

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

http://www.bkjia.com/sjkqy/967482.html /** * 查询指定用户和企业关联有没有配置角色 * @param business...

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

spring中@param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return...

mybatis的@Param注解使用场景

mybatis中的@Param参数比较常用,基本的用法大家也清楚。但有些场景的用法还是不太了解,以下介绍一下本人遇到的一个使用场景。                  如何在sql的映射文...

STM32中assert_param的使用

  • 2015-06-26 16:28
  • 64KB
  • 下载

mysql + SpringMVC + MyBatis中批量插入实例以及@Param注解的用法

1.使用到的jar包如下: mybatis-3.2.2.jar、mybatis-spring-1.2.2.jar、mysql-connector-java-5.1.32.jar 2.Spring配置文...

forward redirct 转向和重定向区别;通过el和java代码在jsp页面取出参数,jsp:param注意事项

有些代码被注释了,是因为本机调试时,对其他代码有影响   1.重定向的/指的是127.0.0.1,   如果不加,那么则从akazamtest01加上指定的页面名  不能两个response....
  • rugaxm
  • rugaxm
  • 2011-10-30 18:23
  • 3042

JSF参数传递方式之f:param标签和f:attribute区别

页面到Bean的参数传递 页面中设置参数: Java代码               "Test2" ...

request、requestScope、param区别

搜了一下,整理如下…… 首先在看遇到的问题: 在浏览器地址输入,表示传入一个参数test,值为123 http://localhost:8888/Test/index.jsp?t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)