验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

mybatisplus中返回Vo案例分析

阅读:644 来源:乙速云 作者:代码code

mybatisplus中返回Vo案例分析

注意: mybatisplus内置的几个方法使用泛型限制了方法的返回类型,
所以实现返回Vo还是得自定义方法, 这个方法名尽量不要和原有的名字类似
(以免出问题), 采用mybatisplus就是想借用它的wrapper的便利.

另外, 如果不采用vo, 而是直接ss.realname submitterName, ss.title submitterTitle, sa.realname appraiserName , sa.title appraiserTitle加入为entity中属性(对这几个属性取消持久化 ), 然后直接修改page方法对应的xml, 这么做虽然可以返回你要的结果, 但是, 前端传入entity对象作为查询参数时, 假如这几个属性存在非空值, 那么mybatisplus会映射到sql中去, 这样sql就报错了, 因为数据库没这几个字段
(除非你禁止这几个参数的反序列化或者对mybatisplus wrapper 过滤掉这几个属性, 先不说fastjson的反序列化在这几个属性上用没有bug, 这样做会让代码不优雅,耦合也高, swagger ui也没写清楚, 所以还是采用vo的好)

1.定义Vo (extends 实体类然后加几个非持久化字段), 作为返回。不用map作为返回的原因是, 对swagger-api不友好

2.xml 如下(就用mybaisplus, 不想用mybatis)

 
    select ss.realname submitterName, ss.title submitterTitle, sa.realname appraiserName , sa.title appraiserTitle, n.*
    from  nst_daily_report n
    LEFT JOIN sys_user sa
    on n.appraiser_id = sa.id
    LEFT JOIN sys_user ss
    on n.submitter_id = ss.id
    
        ${ew.sqlSegment}
    

3.service

public interface IDailyReportService extends IService {
    IPage selectPageVo(IPage page, Wrapper queryWrapper);
}
@Service
public class DailyReportServiceImpl extends ServiceImpl implements IDailyReportService {
    @Override
    public IPage selectPageVo(IPage page, Wrapper queryWrapper) {
        return this.baseMapper.selectPageVo(page, queryWrapper);
    }
}

4.controller

@GetMapping(value = "/list")
	public Result> queryPageList(DailyReport dailyReport,
									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
									  HttpServletRequest req){
		DailyReportVo dailyReportVo = new DailyReportVo();
				BeanUtils.copyProperties(dailyReportVo,dailyReport);
		Result> result = new Result<>();
		QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dailyReportVo, req.getParameterMap());
		Page page = new Page<>(pageNo, pageSize);
		IPage pageList = dailyReportService.selectPageVo(page, queryWrapper);
		result.setSuccess(true);
		result.setResult(pageList);
		return result;
	}
分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>