ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在jeecg-boot中使用代码生成器&mybatis-plus

2021-07-24 14:01:05  阅读:254  来源: 互联网

标签:代码生成 LambdaQueryWrapper queryWrapper boot list plus query 查询器 eq


一、代码生成器
代码生成器--》jeecgOneGUI
配置文件:resource/jeecg/jeecg_config.properties,修改目标生成的路径和包名
数据库连接:resource/jeecg/jeecg_database.properties,改数据库连接
生成内容:
(1)、后端:生成数据库表对应的实体,生成实体的增删改查相关接口(主要利用mybatis-plus自带封装的方法)
(2)、前端:生成的vue文件,功能类似用户管理,有数据列表展示和记录的增删改查

 

一、mybatis-plus

1、类的封装
服务类继承了IService,
接口类继承了ServiceImpl,implements了服务类


2、mybatis-plus的方法(常用):
新增:save(),
更新:updateById(),
查询(+查询器):getById()、list();getOne();
删除:removeById()
分页:page(page, queryWrapper);


3、实体类,可以set或者get属性。(代码生成器生成的实体类,会对表中字段名称进行修改,会将下划线改成驼峰命名)
疑问:接口获取参数对象:OperatStaff operatStaff或者@RequestBody OperatStaff operatStaff区别?

4、接口请求方式:
查询:get
新增:post
编辑:put
删除:delete

5、查询器:
示例1:普通查询器-查询

public Result<?> queryPageQuery(OperatStaff operatStaff,HttpServletRequest req) 
{
             QueryWrapper<OperatStaff> queryWrapper = QueryGenerator.initQueryWrapper(operatStaff, req.getParameterMap());(参数1:实体和参数值,参数2:所有参数和值)
             List<OperatStaff> list = operatStaffService.list(queryWrapper);
             return Result.ok(list);
}

示例2:普通查询器-分页

public Result<?> queryPageList(OperatStaff operatStaff,Integer pageNo,Integer pageSize,HttpServletRequest req)
{
            QueryWrapper<OperatStaff> queryWrapper = QueryGenerator.initQueryWrapper(operatStaff, req.getParameterMap());
            Page<OperatStaff> page = new Page<OperatStaff>(pageNo, pageSize);(参数1:第几页,参数2:每页数量)
            IPage<OperatStaff> pageList = operatStaffService.page(page, queryWrapper);
            return Result.ok(pageList);
}

示例3:普通查询器-复杂查询+日期过滤+排序

public Result<?> queryPageQuery(String starttime,String endtime,String pscode,String outputcode,String monitorid)
{
    QueryWrapper<OperatCollect> queryWrapper = new QueryWrapper<OperatCollect>();
    queryWrapper.ge("start_time", DateUtil.strToDate(starttime,"yyyy-MM-dd HH:mm:ss"));
    queryWrapper.le("start_time",DateUtil.strToDate(endtime,"yyyy-MM-dd HH:mm:ss"));
    queryWrapper.eq(oConvertUtils.isNotEmpty(pscode),"pscode",pscode);
    queryWrapper.eq(oConvertUtils.isNotEmpty(outputcode),"outputcode",outputcode);
    queryWrapper.eq(oConvertUtils.isNotEmpty(monitorid),"monitorid",monitorid);
    queryWrapper.orderByAsc("start_time");//排序
    //queryWrapper.apply(oConvertUtils.isNotEmpty(startdate)," start_time>='"+startdate+"'");
    //queryWrapper.apply(oConvertUtils.isNotEmpty(endtime)," start_time<='{0}'",endtime);
    List<OperatCollect> pageList = operatCollectService.list(queryWrapper);
    return Result.ok(pageList);
}

示例4:兰博查询器

LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
                    eq(SysRolePermission::getPermissionId, permissionId)
                    .eq(SysRolePermission::getRoleId,roleId);
SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
            query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
            query.orderByAsc(SysPermission::getSortNo);
List<SysPermission> list = sysPermissionService.list(query);

LambdaQueryWrapper和QueryWrapper区别:
QueryWrapper 的列名匹配使用的是 “数据库中的字段名(一般是下划线规则)”
LambdaQueryWrapper 的列名匹配使用的是“Lambda的语法,偏向于对象”,兼容性更好

标签:代码生成,LambdaQueryWrapper,queryWrapper,boot,list,plus,query,查询器,eq
来源: https://www.cnblogs.com/tiandi/p/15055032.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有