关于mybatis中基本类型条件判断问题
来源:互联网 发布:php strcamp == 编辑:程序博客网 时间:2024/05/16 18:03
一:发现问题
sql动态语句中如果 parameterType="int"
<select id="sel_campusinfo" parameterType="int" resultType="Campusinfo"> select cmpid,cmpname from campusinfo where state!='d' and cmpid=#{cmpid} </select>是正确的,但是如果加上if test
<select id="sel_campusinfo" parameterType="int" resultType="Campusinfo"> select cmpid,cmpname from campusinfo where state!='d' and cmpid!=0 <if test="cmpid!=0">and cmpid=#{cmpid}</if> </select>
则报错:
There is no getter for property named 'cmpid' in 'class java.lang.Integer'
出错原因:Mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式取Integer.cmpid。Integer对象没有cmpid属性。如果不解析参数,mybatis自动识别传入的参数,不会报错。
二:解决办法
1.修改select语句<select id="sel_campusinfo" parameterType="int" resultType="Campusinfo"> select cmpid,cmpname from campusinfo where state!='d' and cmpid!=0 <if test="_parameter!=0">and cmpid=#{_parameter}</if> </select>
参数名全部改为_parameter。
2.不修改sql,只修改接口
接口类:
Campusinfo sel_campusinfo( int cmpid);
改为:
Campusinfo sel_campusinfo(@Param(value="cmpid") int cmpid);3.可以将参数包装在hashmap或者对象中作为参数
- 关于mybatis中基本类型条件判断问题
- 关于mybatis中基本类型条件判断问题
- 关于mybatis中基本类型条件判断问题
- mybatis 关于条件的判断
- mybatis 基本类型的if条件判断问题 There is no getter for property named 'xxx' in 'class Java.lang.Integer'
- MyBatis 判断条件为等于的问题
- Mybatis查询语句中的条件判断问题
- MyBatis 判断条件为等于的问题
- MyBatis 判断条件为等于的问题
- MyBatis 判断条件为等于的问题
- MyBatis 判断条件为等于的问题
- mybatis中mapper进行if条件判断
- 在条件判断switch()语句中,可以使用哪些基本类型呢?
- mybatis if条件判断字符串类型是否一致
- mybatis 传参为 Integer 时 ,Mapper 文件 中判断 条件 问题,传入0值,直接忽略判断
- 关于mybatis 传入基本参数类型使用if test 判断出错的问题
- myBatis中删除条件的拼接问题
- mybatis 中<if test="">test中的判断条件 ognl
- 我的一个makefile
- SSH单向无密码访问
- 学习 Linux,302(混合环境): Winbind
- 行锁过多处理
- 学习内核注射DLL到用户态进程空间
- 关于mybatis中基本类型条件判断问题
- Django 1.5.4 专题19 heroku s3
- sed实现直接修改文件内容
- sendEmail
- shell 脚本过滤段落内容
- 输入法编程相关资源汇集-欢迎补充
- 修练8年C++面向对象程序设计之体会
- 发送邮件程序报错454 Authentication failed以及POP3和SMTP简介
- ffmpeg 编译参数