Mybatis-Plus执行自定义SQL并返回查询结果,无需VO类



前提:

​ 之前了解到Mybatis-Plus执行完SQL后都需要在一个XML文件中指定resultType,通常指定的都是实体类或者新建一个VO类,但有时候新建太多VO类也不利于维护,所以就写个小Demo,研究一下看能不能把SQL查询结果直接返回给前台,这样也省事(。・∀・)ノ゙

正文:

1:新建接口方法

list里面是 object ,因为查询的结果不是一个特定实体类,而且也不用新建VO类

public interface UserMapper extends BaseMapper<User> {

    // 注意:这里使用Object,而不是之前的实体类或者VO类
    List<Object> getAll();

}

2:XML文件实现方法

随便写一个SQL语句,通常情况下resultType都是指定一个实体类或者VO类完成自动封装,但有时无需创建VO类就可实现功能。注意:这里的resultType是java.util.Map。当然你可可以试试其它的,应该没什么大问题

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="byb.mapper.UserMapper">

    <!--执行自定义SQL将返回结果保存到Map中-->
    <select id="getAll" resultType="java.util.Map">
        SELECT u.id,u.username,u.password,r.role_name,r.role_desc
        FROM `user` u
        LEFT JOIN uandr	a ON u.id = a.user_id
        LEFT JOIN role r ON a.role_id = r.id
    </select>

</mapper>

3:Controller调用

@RestController
public class TestController {

    @Resource
    UserMapper userMapper;

    @RequestMapping("/all")
    public List<Object> getAll() {
        System.out.println("前台调用借口,直接返回SQL查询结果");
        List<Object> list = userMapper.getAll();
        return list;
    }
}

4:测试结果

如图所示,调用接口后不用VO类也可以获取到相应数据,如果前台使用Layui的话这返回数据直接丢到数据表格的回调里就完事了,省时省力,嘻嘻o(〃‘▽’〃)o

效果图

5:总结

搞定收工,睡觉睡觉!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值