码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis中int类型的判断问题分析

时间:2021-01-14 11:26:28      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:app   bat   int   round   color   ora   set   帮助   条件   

用mybatis进行一个修改操作的时候,int age 我并没没有给它赋值,执行完成修改后发现原有的age的值修改为0,

先看看mapper.xml里面的sql

<update id="updateUser" parameterType="u">
update t_user
set
<if test="username!=null">
username=#{username},
</if>
<if test="realname!=null">
realname=#{realname},
</if>
<if test="password!=null">
password=#{password},
</if>
<if test="age!=null ">age=#{age}</if>
where userid=#{userid}
</update>

我没有传age值到对象当中,age是int类型  默认为0,假如age为空 我们还不想它修改原来的值得话需要在age后面添加判断条件 

 

先看看出错之前的sql

<update id="updateUser" parameterType="u">
update t_user
set
<if test="username!=null">
username=#{username},
</if>
<if test="realname!=null">
realname=#{realname},
</if>
<if test="password!=null">
password=#{password},
</if>
<if test="age!=null and age!=‘‘">age=#{age}</if>

where userid=#{userid}
</update>

运行测试程序报错提示

报错### Cause: java.sql.SQLException: ORA-01747: user.table.column, table.column 或列说明无效

原来没有写set标签

<update id="updateUser" parameterType="u">
update t_user
<set>
<if test="username!=null">
username=#{username},
</if>
<if test="realname!=null">
realname=#{realname},
</if>
<if test="password!=null">
password=#{password},
</if>
<if test="age!=null and age!=‘‘">age=#{age}</if>
</set>
where userid=#{userid}
</update>

这样写的修改成功,并且之前的值也不会修改成默认的值0

假如一个int 类型的 a 它不能为空 但是它可以为0可以这样写

<if test="a!=null and a!=‘‘ or a==0">

a=#{a}

</if>

 补充:

我发现在有set节点包裹的if条件判断时可以这么写 直接判断age!=0即可,它原来的值也不会改变。

<update id="updateUser" parameterType="u">
update t_user
<set>
<if test="username!=null">
username=#{username},
</if>
<if test="realname!=null">
realname=#{realname},
</if>
<if test="password!=null">
password=#{password},
</if>
<if test="age!=0">age=#{age}</if>
</set>
where userid=#{userid}
</update>

原创不易,如果这篇博文对你有所帮助,麻烦动动你发财的小手支持一下谢谢。

mybatis中int类型的判断问题分析

标签:app   bat   int   round   color   ora   set   帮助   条件   

原文地址:https://www.cnblogs.com/flyfishing1991/p/14274701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!