开发者社区 问答 正文

为什么 mybatis这样会 直接查询就可以,加了分号也出错 ?



UPDATE shippingaddress set defaultAddress = 0 WHERE openid = #{openid} AND defaultAddress = 1

INSERT INTO shippingaddress(addressId,openid,receiver,phone,address,doorplate,defaultAddress)
VALUES (null,#{openid},#{receiver},#{phone},#{address},#{doorplate},#{defaultAddress})
图片说明
图片说明

展开
收起
爱吃鱼的程序员 2020-08-21 15:20:23 993 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    一个方法对应一个sql,你想两句一起执行可以写个方法来调用这两个方法,应该mybatis不支持单方法绑定多个语句吧

    你这个应该是想做成存在就修改、不存在就添加吧,不可能又修改有添加同一张表吧改成

    <choose><whentest="deful='1'">修改</when><otherwise>添加</otherwise></choose>
    相当于if条件成立修改else添加

    mybatis会把两个sql合并成一个sql语句执行,不能像mysql工具中可以一起执行多个sql。

    是不是想实现类似事务执行两个sql操作,可以在代码层面通过调用事务模版进行事务处理,比如org.springframework.transaction.support包下的TransactionTemplate类

    2020-08-21 15:20:41
    赞同 展开评论
问答分类:
问答标签:
问答地址: