关于mybatis,“方法传递的参数”和“动态SQL中判断条件中的参数”,两者之间的关系
有三段几乎相同的SQL,根据ID更新表中的某一个字段(更新的表相同,条件相同,只是字段不同),正常写成三条update语句,updateXXsetx=‘01’wherei...
有三段几乎相同的SQL,根据ID更新表中的某一个字段(更新的表相同,条件相同,只是字段不同),
正常写成三条update语句,
update XX set x=‘01’ where id=?
update XX set y=‘01’ where id=?
update XX set z=‘01’ where id=?
现在想抽象成一个动态SQL,如下:
<update id="update" parameterType="java.lang.String"> UPDATE XX SET <choose> <!-- 发布 --> <when test="type=='01'"> x= '01' </when> <!-- 取消 --> <when test="type=='02'"> y= '01' </when> <!-- 删除 --> <otherwise> z = '01' </otherwise> </choose> WHERE id = #{id} </update>
对应DAO中的方法,
public int updateservice(String type,String id);
运行的时候报,参数不能绑定,
想请教一下,<when test="type=='01'">中的“type”怎么写才能识别。
(另外,不想用map或类的方式传参数,只是想了解传递两个字符串参数怎么样才能实现如上构想) 展开
正常写成三条update语句,
update XX set x=‘01’ where id=?
update XX set y=‘01’ where id=?
update XX set z=‘01’ where id=?
现在想抽象成一个动态SQL,如下:
<update id="update" parameterType="java.lang.String"> UPDATE XX SET <choose> <!-- 发布 --> <when test="type=='01'"> x= '01' </when> <!-- 取消 --> <when test="type=='02'"> y= '01' </when> <!-- 删除 --> <otherwise> z = '01' </otherwise> </choose> WHERE id = #{id} </update>
对应DAO中的方法,
public int updateservice(String type,String id);
运行的时候报,参数不能绑定,
想请教一下,<when test="type=='01'">中的“type”怎么写才能识别。
(另外,不想用map或类的方式传参数,只是想了解传递两个字符串参数怎么样才能实现如上构想) 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询