WHERE
id=#{id}
</update>
<delete id="deleteUserById" parameterType="int">
DELETE FROM
order_users
WHERE
uid=#{uid}
</delete>
也就是说先更新用户表users的状态为激活,然后在进行删除该激活的用户,其中用户表的id与订单表的uid是对应的,比如id是22那么它所对应的uid也是22,我上面写法会mybatis会说映射文件ID名称相同了,无法执行,技术限制不使用存储过程方式调用的情况下怎么解决该问题啊,mybatis能否像ibatis那样同时有<statement>属性加入多条sql一起执行呢?
------解决思路----------------------
好像没有这样的用法。你可以将这两个语句分开,在DAO里作为两个方法,然后可以额外加一个方法对这两个方法依次调用,也能实现
------解决思路----------------------
MyBatis对每个sql在Mapper Interface里都有一个对应的方法。
写一个Service,在Service的方法里调用这两个删除方法就可以了,如果有需要,还可以用事务。
------解决思路----------------------
那你这两步其实就是一个业务操作中的两步嘛。
业务操作放到service层中,两步操作每一步都放在DAO层
那么在service开启事务,然后依次调用两步就OK了~很清晰嘛
------解决思路----------------------