在jeecg-boot中使用代码生成器&mybatis-plus
一、代码生成器
代码生成器--》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的语法,偏向于对象”,兼容性更好
炫技示例:
OperatCompany oc=this.operatCompanyService.getOne(new LambdaQueryWrapper<OperatCompany>().eq(OperatCompany::getName, username));
if (oc == null) return Result.error("用户不存在!");
String passwordEncode = PasswordUtil.encrypt(oc.getId(), password, oc.getSalt());
operatCompanyService.update(new OperatCompany().setPassword(passwordEncode),new QueryWrapper<OperatCompany>().eq(oConvertUtils.isNotEmpty(username),"name",username));
在jeecg-boot中使用代码生成器&mybatis-plus的更多相关文章
- Spring Boot中使用MyBatis注解配置详解(1)
之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...
- Spring Boot 中使用 MyBatis 整合 Druid 多数据源
2017 年 10 月 20 日 Spring Boot 中使用 MyBatis 整合 Druid 多数据源 本文将讲述 spring boot + mybatis + druid 多数据源配置方 ...
- 【spring boot】【mybatis】spring boot中mybatis打印sql语句
spring boot中mybatis打印sql语句,怎么打印出来?[参考:https://www.cnblogs.com/sxdcgaq8080/p/9100178.html] 在applicati ...
- spring boot中连接数据库报错500(mybatis)
spring boot中连接数据库报错500(mybatis) pom.xml中的依赖 <!-- 集成mybatis--> <dependency> <groupId&g ...
- spring boot中利用mybatis-generator插件生成代码
使用Idea在spring boot中集成mybatis-generator,自动生成mapper.xml model dao 文件 一.配置 pom.xml 在pom.xml的<plugi ...
- Spring Boot 中使用 @Transactional 注解配置事务管理
事务管理是应用系统开发中必不可少的一部分.Spring 为事务管理提供了丰富的功能支持.Spring 事务管理分为编程式和声明式的两种方式.编程式事务指的是通过编码方式实现事务:声明式事务基于 AOP ...
- Spring Boot 数据访问集成 MyBatis 与事物配置
对于软件系统而言,持久化数据到数据库是至关重要的一部分.在 Java 领域,有很多的实现了数据持久化层的工具和框架(ORM).ORM 框架的本质是简化编程中操作数据库的繁琐性,比如可以根据对象生成 S ...
- spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid
SpringBoot+MyBatis(xml)+Druid 前言 springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成. 主要是 ...
- Spring Boot 中使用 jpa
本文原文版权归 CSDN Hgihness 所有,此处为转载+技术收藏,如有再转请自觉于篇头处标明原文作者及出处,这是大家对作者劳动成果的自觉尊重!! 作者:Hgihness 原文:http://bl ...
- Spring Boot中使用缓存
Spring Boot中使用缓存 随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一. 原始的使 ...
随机推荐
- #第一类斯特林数,NTT#CF960G Bandit Blues
题目 给你三个正整数 \(n\),\(a\),\(b\),定义 \(A\) 为一个排列中是前缀最大值的数的个数, 定义 \(B\) 为一个排列中是后缀最大值的数的个数,求长度为 \(n\) 的排列中满 ...
- #环#nssl 1487 图
题目 在一个\(n\)个节点\(n\)条边的连通图中, 每条边的权值为两个端点的权值的和. 已知各边权值,求各点权值 (保证环的大小一定是奇数) 分析 考虑断掉环的某一条边,设根节点的答案为\(ax+ ...
- AJAX 前端开发利器:实现网页动态更新的核心技术
AJAX AJAX是开发者的梦想,因为你可以: 在不重新加载页面的情况下更新网页 在页面加载后请求来自服务器的数据 在页面加载后接收来自服务器的数据 在后台向服务器发送数据 HTML页面 <!D ...
- java内存模型(jmm)概念初探
1.和java内存结构的区别: 很多人会把jmm和Java内存结构搞混,网上搜到的一些文章也是如此,java内存结构就是我们常说的堆,栈,方法区,程序计数器..., 当jvm虚拟机启动的时候,会初始化 ...
- HarmonyOS账号服务,畅行鸿蒙生态所有应用与服务
账号对于用户来说并不陌生,在购买新设备或者使用新应用的时候,用户常常会被引导注册或者登录账号,账号就是用户在这些设备或应用内的通行证.根据华为上半年的一项统计,整体上中国网民人均下载App量在68个, ...
- c# 反编译对比(旧)
前言 旧的都是我以前博客的迁移. 我们写代码有时候遇到一些问题,或者我们想优化我们的代码,我们想要看编译后的运行情况,那么反编译是必须要做的一件事. 正文 在此我自己使用的是reflector和ILS ...
- 重新点亮linux 命令树————grub配置文件[二十]
前言 简单介绍一下grub 配置文件. 正文 grub 是什么呢? 引导配置. grub 配置文件: /etc/default/grub 默认grub配置文件 /etc/grub.d/ /boot/g ...
- Docker 内安装 SSH 服务
有时候我们想把 Docker 环境提供给别人,但是又不想提供宿主机,那么可以在 Docker 容器内运行 SSH 服务,使容器保持运行并提供给对方使用即可,下面我们以 CentOS 7.6 的 Doc ...
- 实战指南:使用 xUnit 和 ASP.NET Core 进行集成测试【完整教程】
引言 集成测试可在包含应用支持基础结构(如数据库.文件系统和网络)的级别上确保应用组件功能正常. ASP.NET Core 通过将单元测试框架与测试 Web 主机和内存中测试服务器结合使用来支持集成测 ...
- 牛客网-SQL专项训练12
①SQL中属于分组查询的语句是?(C) 解析: A Where: 条件筛选B 联盟链: 非相关内容C Group By:分组D Having: 条件筛选 区块链大致可以分为公有链(Public Blo ...