文档章节

关于mybatis中基本类型条件判断问题

Jiangnan_
 Jiangnan_
发布于 2016/03/08 10:40
字数 264
阅读 71
收藏 0

今天继续使用mybatis搭建我的网站,在sql这块有个问题

在sql的mapper中如下方式
<select id="countByCate" parameterType="int" resultType="int"> select count(*) from article where <if test="cate!=0"> cate = #{cate} and </if> deletetype=0; </select>
接口方法 :int countByCate(int cate);

按照上述方式提供服务时会报如下错误:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'cate' in 'class java.lang.Integer' at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:365)
    at $Proxy11.selectOne(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:95)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40)
    at $Proxy12.countByCate(Unknown Source)

这是说我的参数中没有get方法?

据说这个是用ognl来判断的 ,这个问题的解决方法在我看来只能用hashmap啦。

其实mybatis里有对这个进行处理

只需要吧接口改成如下形式就ok啦:

int countByCate(@Param(value = "cate") int cate);

在参数中指定一下 param 。 大功告成,单元测试顺利执行。

据说mybatis要在下一个版本中去掉hashmap 大概就是想用这个东西来替代吧

 

© 著作权归作者所有

Jiangnan_
粉丝 1
博文 16
码字总数 4729
作品 0
海淀
私信 提问
Mybatis There is no getter for property named 'X'

在尝试使用mybatis的动态sql中遇到这么一个问题, 使用Mybatis查询时,其参数可以是基本数据类型或者像Integer和String这样的简单的数据对象,也可以是复杂对象(一般是指JavaBean)或者map...

秋风醉了
2015/07/04
0
3
Mybatis+0+null,小问题引发的血案

Mybatis在进行判空操作时,如果status为0的时候,该判断条件的值为false,也就是说Mybatis此时把0作为null来进行判断的,所以遇到这种情况时,只能按照下面这个方法来办! 一、源码调查结果 ...

LYQ1990
2018/06/29
0
0
Mybatis的第三章动态sql总结

我们来讲一下为什么要使用Mybatis的动态sql ? 因为动态sql之所以是Mybatis 的强大特性是因为我们在使用JDBC操作数据库的时候如果查询特别的多,将条件串联成sql字符串是一件很痛苦的事,而且...

dc生活
2018/12/09
0
0
springboot项目中遇到的bug

启动项目的时候报错 情形一 解决方法: 在yml配置文件中加入,因为默认的话是 情形二 在集成mybatis时mapper包中的类没被扫描 解决方法: 在springboot的启动类中加入 或者直接在Mapper类上面...

ben4
2017/05/20
0
0
MyBatis3-动态SQL语句

MyBatis的动态SQL语句是基于OGNL表达式的。可以方便的在SQL语句中实现某些逻辑,总体说来MyBatis动态SQL语句主要有以下几类: 1、if语句(简单的条件判断)。 2、choose(when,otherwize),...

easonjim
2017/06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker中部署的应用,获取含有中文字符的验证码图片时无法正常显示

使用docker过程中遇过的最诡异的问题,服务在本地环境中,通过在IDEA里面运行,或者使用java -jar ***.war运行,获取验证码图片都没有问题,但是运行在docker中,图片正常返回,但是上面的汉...

莫在全
12分钟前
1
0
postgres+socket.io+nodejs实时地图应用实践

nodejs一直以异步io著称,其语言特性尤其擅长于在realtime应用中,如聊天室等。在进行实时应用开发时,必不可少的需要用到 socket.io库,可以说,nodejs+socket.io在实时应用中具有较好的表现...

dragon_tech
18分钟前
2
0
Java开发面试题汇总

目前流行的开发技术、常见的面试问题以及问题的答案都已经写的特别清楚了,今天我在之前的基础上,再基于个人的经验继续精选一些面试题给大家阅读参考。 1,Java的反射 Java 反射机制是在运行...

花漾年华
22分钟前
3
0
聊聊flink jdbc的ParameterValuesProvider

序 本文主要研究一下flink jdbc的ParameterValuesProvider ParameterValuesProvider flink-jdbc_2.11-1.8.0-sources.jar!/org/apache/flink/api/java/io/jdbc/split/ParameterValuesProvide......

go4it
22分钟前
1
0
UserInputControls用户输入控制

enum UserInputControls { kGovernedByOrthoMode = 0x0001,//正交模式管理 kNullResponseAccepted = 0x0002,//允许输入空 kDontEchoCancelForCtrlC = 0x0004,//ctrl C 模式不能重复......

一个小妞
43分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部