MyBatis-Plus 主要是用于单表操作的,它提供的 QueryWrapper
类并不直接支持多表联合查询。多表联合查询通常涉及到多个表之间的关联,需要自定义SQL语句来实现。然而,可以通过以下方式在 MyBatis-Plus 中实现多表查询:
1. 自定义 SQL 查询
你可以在你的 Mapper 接口中定义一个自定义的方法,并使用 @Select
注解来指定SQL语句。例如:
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT u.*, r.* FROM user u INNER JOIN role r
ON u.role_id = r.id
WHERE u.name = #{name}")
List<User> selectUsersWithRoles(@Param("name") String name); }
在这个例子中,我们定义了一个方法 selectUsersWithRoles
,它执行了一个多表联合查询,返回包含用户和角色信息的列表。
2. 使用 XML 映射文件
另一种方法是在 MyBatis 的 XML 映射文件中定义一个查询,并在 Mapper 接口中引用它:
<!-- 在映射文件中定义联合查询 -->
<select id="selectUsersWithRoles" resultType="userWithRole">
SELECT u.*