关于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或类的方式传参数,只是想了解传递两个字符串参数怎么样才能实现如上构想)
展开
 我来答
1_小鑫_1
2014-07-22 · TA获得超过196个赞
知道小有建树答主
回答量:170
采纳率:66%
帮助的人:121万
展开全部
记得mybatis两个参数在配置文件里面应该用param1 param2来代替
判断的哪里 <when test="param1=='01'"> ID哪里WHERE id = #{param2} </update>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式