DELETE sm,sc,scc
from school_collage sc
LEFT JOIN school_major sm on sc.collage_id = sm.collage_id
LEFT JOIN school_class scc on sm.major_id=scc.major_id
WHERE sc.collage_id = #{collageId}
但是不知道怎么写入mapper中
举例:
void deleteSchoolCollage(int collageId);
<delete id="deleteSchoolCollage">
DELETE sm, sc, scc
FROM school_collage sc
LEFT JOIN school_major sm ON sc.collage_id = sm.collage_id
LEFT JOIN school_class scc ON sm.major_id = scc.major_id
WHERE sc.collage_id = #{collageId}
</delete>
public interface ClassMapper extends BaseMapper<ClassDO> {
IPage<ClassVO> page(Page<User> page, User user);
}
<mapper namespace="com.lfh.demo.mapper.ClassMapper">
<resultMap id="pageMap" type="com.lfh.demo.entity.vo.ClassVO">
<result column="classId" property="classId"/>
<result column="className" property="className"/>
<collection property="userList" ofType="com.lfh.demo.entity.User" javaType="ArrayList">
<result column="userName" property="name"/>
</collection>
</resultMap>
<select id="page" resultMap="pageMap">
select tc.id as classId, tc.class_name as className,
tu.name as userName
from t_class tc
left join t_user tu on tu.class_id = tc.id
</select>
</mapper>
根据参考资料中的内容,我们知道在使用Mybatis-plus的mapper接口调用时有哪些要求。在这个问题中,我们需要在mapper中编写代码来实现关联删除的功能。
具体步骤如下:
1.在mapper.xml文件中定义删除语句,包括需要删除的表和对应条件,例如:
<delete id="deleteUserAndOrder" parameterType="java.lang.Long">
delete from user where id = #{id};
delete from order where user_id = #{id};
</delete>
这个操作可以实现同时删除user表和order表中与指定id相关的数据。
2.在对应的mapper接口中定义对应的方法:
public interface UserMapper extends BaseMapper<User> {
int deleteUserAndOrder(Long id);
}
这个接口方法用于调用xml文件中定义的语句,并接收参数,返回删除的行数。
3.在service层中调用这个接口方法,实现关联删除的功能:
public boolean deleteUserAndOrder(Long id) {
int result = userMapper.deleteUserAndOrder(id);
return result > 0;
}
在service层中调用这个接口方法,传入需要删除的id,如果删除成功则返回true。
这样我们就可以使用Mybatis-plus中的mapper来实现关联删除的功能了。