【easycode】使用说明 & 示例
语法
##是模板的注释,不会生成#全局的一些设置$使用库函数或者调用全局定义的内容
常用方法
- 数据库表信息
${tableInfo}comment表备注name表名fullColumn所有列comment列备注name列名称type列类型
pkColumn主键列otherColumn其他列
常用功能
- 循环
#foreach($column in $tableInfo.fullColumn)
#end
- 判断,是否包含字符串
#if($!{tool.getClsNameByFullName($column.type).contains('Date')})
#end
- 小写转换,把第一个字母转换为小写
$!tool.firstLowerCase($!tableInfo.name)
示例
controller 自定义函数比较多,需要按照需要重写,前端也是可以生成的,通用性很差,根据实际情况生成
entity
##导入宏定义
$!define
##保存文件(宏定义)
#save("/entity", ".java")
##包路径(宏定义)
#setPackageSuffix("entity")
##自动导入包(全局变量)
$!autoImport
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.IdType;
##表注释(宏定义)
#tableComment("表实体类")
@Data
@TableName
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = -1;
/**
* 自增 => @TableId(type = IdType.AUTO)
*/
#foreach($column in $tableInfo.pkColumn)
#if(${column.comment})
/*${column.comment}*/#end
@TableId
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.otherColumn)
#if(${column.comment})
/*${column.comment}*/#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}
mapper
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Mapper")
##保存文件(宏定义)
#save("/mapper", "Mapper.java")
##包路径(宏定义)
#setPackageSuffix("mapper")
$!autoImport
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
##表注释(宏定义)
#tableComment("表数据库访问层")
@Mapper
public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
}
service
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Service")
##保存文件(宏定义)
#save("/service", "Service.java")
##包路径(宏定义)
#setPackageSuffix("service")
$!autoImport
import com.baomidou.mybatisplus.extension.service.IService;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {
}
serviceImpl
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")
##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")
##包路径(宏定义)
#setPackageSuffix("service.impl")
$!autoImport
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
##表注释(宏定义)
#tableComment("表服务实现类")
@Service("$!tool.firstLowerCase($tableInfo.name)Service")
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {
}
controller
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Controller")
##保存文件(宏定义)
#save("/controller", "Controller.java")
##包路径(宏定义)
#setPackageSuffix("controller")
##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
$!autoImport
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.test.common.core.utils.Res;
import com.test.common.core.utils.Result;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
import lombok.AllArgsConstructor;
import com.test.business.entity.CommonQuery;
import com.test.business.utils.AutoQueryGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
##表注释(宏定义)
#tableComment("表控制层")
@RestController
@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
@AllArgsConstructor
@Slf4j
@Api(tags = "${tableInfo.comment}(${tableInfo.name})APi")
public class $!{tableName} {
/**
* 服务对象
*/
private final $!{tableInfo.name}Service $!{serviceName};
/**
* 分页查询所有数据
*
* @param page 分页对象
* @param $!entityName 查询实体
* @return 所有数据
*/
@GetMapping("/page")
@ApiOperation(value = "分页查询${tableInfo.comment}")
public Result listPageAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName) {
return Res.ok($!{serviceName}.page(page, new LambdaQueryWrapper<$!tableInfo.name>()));
}
/**
* 高级查询数据
*
* @param page 分页对象
* @param $!entityName 查询实体
* @return 所有数据
*/
@GetMapping("/queryPage")
@ApiOperation(value = "高级分页查询${tableInfo.comment}")
public Result listPageAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName, CommonQuery commonQuery) {
QueryWrapper<$!tableInfo.name> autoQueryWrapper = AutoQueryGenerator.initQueryWrapper($!entityName, commonQuery);
return Res.ok($!{serviceName}.page(page, autoQueryWrapper));
}
/**
* 高级查询所有数据
*
* @param $!entityName 查询实体
* @return 所有数据
*/
@GetMapping("/list")
@ApiOperation(value = "高级查询全部${tableInfo.comment}")
public Result listAll($!tableInfo.name $!entityName, CommonQuery commonQuery) {
QueryWrapper<$!tableInfo.name> autoQueryWrapper = AutoQueryGenerator.initQueryWrapper($!entityName, commonQuery);
return Res.ok($!{serviceName}.list(autoQueryWrapper));
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("/{id}")
@ApiOperation(value = "获取单个${tableInfo.comment}")
public Result selectOne(@PathVariable("id") Long id) {
return Res.ok($!{serviceName}.getById(id));
}
/**
* 新增数据
*
* @param $!entityName 实体对象
* @return 新增结果
*/
@PostMapping
@ApiOperation(value = "新增${tableInfo.comment}")
public Result insert(@RequestBody $!tableInfo.name $!entityName) {
return Res.ok($!{serviceName}.save($!entityName));
}
/**
* 修改数据
*
* @param $!entityName 实体对象
* @return 修改结果
*/
@PutMapping
@ApiOperation(value = "修改${tableInfo.comment}")
public Result update(@RequestBody $!tableInfo.name $!entityName) {
return Res.ok($!{serviceName}.updateById($!entityName));
}
/**
* 删除数据
*
* @param id 主键结合
* @return 删除结果
*/
@DeleteMapping("/{id}")
@ApiOperation(value = "删除${tableInfo.comment}")
public Result delete(@PathVariable("id") Long id) {
return Res.ok($!{serviceName}.removeById(id));
}
}
【easycode】使用说明 & 示例的更多相关文章
- 设置API:wx.openSetting,wx.getSetting使用说明(示例:地图授权与取消授权后的重新授权)
这个API解决了过去一个长久以来无法解决的问题,如何让用户重复授权: 打开小程序的设置界面:就是主动调取授权 目前资料极少,但是已经可以让大家先看看了: 官方文档地址:https://mp.weixi ...
- MarkDown 使用说明示例
一.标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 一级标题 这是 H2 这是 H3 一级和二级标题还有一种写法 就是下面加横杆,同时 超过2个的 = 和 - 都可以有效果. Thi ...
- ansible基础及使用示例
1 介绍 Ansible 是一个系统自动化工具,用来做系统配管理,批量对远程主机执行操作指令. 2 实验环境 ip 角色 192.168.40.71 ansible管控端 192.168.40.72 ...
- Matlab2015入门学习02
1. 续行符 ... 当物理的一行之内写不下时, 在 物理行的结尾加上三个小黑点 >>跟在运算符之后,可以不留space空格 >>跟在数字之后,若不留白space,出错; 留一 ...
- (转)如何进行Monkey Test
如何进行Monkey Test 目录 一 简介 二 测试准备 三 基本命令格式 四 测试Log获取 五 Monkey命令参数介绍 六 保存monkey log以及手机log到sdcard(新增) ...
- monkey测试(转)
一.Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时 ...
- Android压力测试快速入门教程(图解)——Monkey工具
文章目录: 一.Monkey简介 二.Monkey的基本用法 三.Monkey测试示例图解 四.Monkey命令参数介绍 五.Monkey log分析 一.Monkey简介 Monkey:Androi ...
- 如何进行Monkey Test
如何进行Monkey Test 目录 一 简介 二 测试准备 三 基本命令格式 四 测试Log获取 五 Monkey命令参数介绍 六 保存monkey log以及手机log到sdcard(新增) ...
- adb Monkey用法
以这条Monkey指令为例: #monkey -s --throttle -p com.android.cameraswitch -- 这条monkey指令是测试:在camera模块中产生1万次伪随机 ...
随机推荐
- 内省详解(Introspector/BeanInfo/MethodDescriptor/PropertyDescriptor)
内省(Introspector)概念 内省Introspector 是Java提供的操作 JavaBean 的 API,用来访问某个属性的 getter/setter 方法.对于一个标准的 Jav ...
- 【odoo14】第六章、管理模块数据
本章代码可在原作者github下载 使用外部ID及命名空间 外部ID及XML ID用于标记记录.到目前为止,我们在视图.菜单及动作中接触了XML IDs.本节我们将进一步了解什么是XML ID. 步骤 ...
- [THUPC2019] 找树
一.题目 点此看题 二.解法 这道题很离谱啊,看上去是求一个最大值,其实是把生成树权值为 \(i\) 的个数都给算出来,因为权值很小. 既然是生成树可以考虑矩阵树定理,我们考虑他是求这样一个式子: \ ...
- Codeforces 976C Nested Segments
题面: 传送门 C. Nested Segments Input file: standard input Output file: standard output Time limit: 2 secon ...
- react第三方库
作者:慕课网链接:https://www.zhihu.com/question/59073695/answer/1071631250来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- Tornado 简明教程
1.TornadoTornado:python编写的web服务器兼web应用框架1.1.Tornado的优势轻量级web框架异步非阻塞IO处理方式出色的抗负载能力优异的处理性能,不依赖多进程/多线程, ...
- Ubuntu18.04安装MySQL(未设置密码或忘记密码)
一 安装MySQL sudo apt-get update sudo apt-get install mysql-server 二 密码问题 1 安装时提示设置密码 这种情况没什么问题,通过已下命令登 ...
- (十四--十五)数据库查询优化Part I
(十四--十五)数据库查询优化Part I 如果理解的有问题.欢迎大家指出.这也是我在看课记得笔记..可能会有很多问题 查询优化的重要性 请记住用户只会告诉DMBS他们想要什么样的结果,而不会告诉他们 ...
- Istio 生产环境用户流量接入方案
总结Istio 生产环境用户流量接入方案 方案1 Client -> istioGateway域名(微服务) -> VritualService匹配路由并绑定网关 -> Destin ...
- day-05-字典
字典的初识 why: 列表可以存储大量的数据,但数据之间的关联性不强 列表的查询速度比较慢.数量越大查询越慢 what:容器型数据类型:dict how: 数据类型的分类(可变与不可变) 可变(不可哈 ...