java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 在xml的连表查询使用queryWrapper

mybatisplus如何在xml的连表查询中使用queryWrapper

作者:雨我无瓜.

这篇文章主要介绍了mybatisplus如何在xml的连表查询中使用queryWrapper,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

在xml的连表查询使用queryWrapper

在mapper接口中定义方法

List<Map<String,Object>> linkUserAndDept(@Param("ew1") Wrapper<User> wrapper1, @Param("ew2") Wrapper<Dept> wrapper2);

在mapper xml中

  <select id="linkUserAndDept" resultType="java.util.Map">
        select u.name,u.age,u.address,d.* from user u left join dept d on u.deptid = d.deptid
        <where>
            <trim prefixOverrides="AND">
                <if test="ew1!=null and ew1.sqlSegment!=null and ew1.sqlSegment != ''">
                    AND ${ew1.sqlSegment}
                </if>
                <if test="ew2!=null and ew2.sqlSegment!=null and ew2.sqlSegment != ''">
                    AND ${ew2.sqlSegment}
                </if>
            </trim>
        </where>
    </select>

调用该方法

QueryWrapper<User> userWrapper = Wrappers.<User>query();
QueryWrapper<Dept> deptWrapper = Wrappers.<Dept>query();    
    
userWrapper.eq("u.name","张三");
userWrapper.setParamAlias("ew1"); //这里要设置别名,不然会报异常
/*deptWrapper.eq("d.deptname","开发部");
deptWrapper.setParamAlias("ew2");*/    
    
List<Map<String, Object>> map = userMapper.linkUserAndDept(userWrapper,deptWrapper);

mapper.xml 配合queryWrapper写法

mapper中的接口这么写

IPage selectPosts(Page page, @Param(Constants.WRAPPER) QueryWrapper wrapper);

xml中${ew.customSqlSegment}

就是querywrapper的条件

select * from user_collection ${ew.customSqlSegment}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文