开发者社区> 问答> 正文

为什么 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 951 0
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
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载