EasyCode插件_MybatisPlus_CURD自定义模板

电玩女神 2023-10-04 20:22 140阅读 0赞

1、使用

首先在idea中下载EasyCode代码生成插件,有自带的模板,也可以使用自定义模板
在这里插入图片描述

2、controller

  1. ##导入宏定义
  2. $!{
  3. define.vm}
  4. ##设置表后缀(宏定义)
  5. #setTableSuffix("Controller")
  6. ##保存文件(宏定义)
  7. #save("/controller", "Controller.java")
  8. ##包路径(宏定义)
  9. #setPackageSuffix("controller")
  10. ##定义服务名
  11. #set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
  12. ##定义实体对象名
  13. #set($entityName = $!tool.firstLowerCase($!tableInfo.name))
  14. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  15. import com.baomidou.mybatisplus.extension.api.ApiController;
  16. import com.baomidou.mybatisplus.extension.api.R;
  17. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  18. import $!{
  19. tableInfo.savePackageName}.entity.$!tableInfo.name;
  20. import $!{
  21. tableInfo.savePackageName}.service.$!{
  22. tableInfo.name}Service;
  23. import lombok.AllArgsConstructor;
  24. import io.swagger.annotations.ApiOperation;
  25. import springfox.documentation.annotations.ApiIgnore;
  26. import org.springframework.web.bind.annotation.*;
  27. import javax.annotation.Resource;
  28. import java.io.Serializable;
  29. import java.util.List;
  30. ##表注释(宏定义)
  31. #tableComment("表控制层")
  32. @RestController
  33. @AllArgsConstructor
  34. @RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
  35. public class $!{
  36. tableName} {
  37. private $!{
  38. tableInfo.name}Service $!{
  39. serviceName};
  40. /**
  41. * 分页查询所有数据
  42. *
  43. * @param page 分页对象
  44. * @param $!entityName 查询实体
  45. * @return 所有数据
  46. */
  47. @GetMapping("/page")
  48. @ApiOperation(value = "分页", notes = "传入param与query")
  49. public R<IPage<$!tableInfo.name>> page(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
  50. IPage<$!tableInfo.name> pages = $!{
  51. serviceName}.page(Condition.getPage(query), Condition.getQueryWrapper(param, Blog.class));
  52. return R.data(pages);
  53. }
  54. /**
  55. * 通过主键查询单条数据
  56. *
  57. * @param id 主键
  58. * @return 单条数据
  59. */
  60. @GetMapping("/getInfoById")
  61. @ApiOperation(value = "根据id查询数据", notes = "传入id")
  62. public R selectOne(@RequestParam(value = "id") Long id) {
  63. return R.data($!{
  64. serviceName}.getById(id));
  65. }
  66. /**
  67. * 新增数据
  68. *
  69. * @param $!entityName 实体对象
  70. * @return 新增结果
  71. */
  72. @PostMapping("/insert")
  73. @ApiOperation(value = "新增", notes = "传入$!tableInfo.name")
  74. public R insert(@RequestBody $!tableInfo.name $!entityName) {
  75. return R.status($!{
  76. serviceName}.save($!entityName));
  77. }
  78. /**
  79. * 修改数据
  80. *
  81. * @param $!entityName 实体对象
  82. * @return 修改结果
  83. */
  84. @PutMapping("/update")
  85. @ApiOperation(value = "修改", notes = "传入$!tableInfo.name")
  86. public R update(@RequestBody $!tableInfo.name $!entityName) {
  87. return R.status($!{
  88. serviceName}.updateById($!entityName));
  89. }
  90. /**
  91. * 删除数据
  92. *
  93. * @param idList 主键结合
  94. * @return 删除结果
  95. */
  96. @DeleteMapping("/remove")
  97. @ApiOperation(value = "逻辑删除", notes = "传入idList")
  98. public R delete(@RequestParam("idList") List<Long> idList) {
  99. return R.status($!{
  100. serviceName}.removeByIds(idList));
  101. }
  102. }

3、service

  1. ##导入宏定义
  2. $!{
  3. define.vm}
  4. ##设置表后缀(宏定义)
  5. #setTableSuffix("Service")
  6. ##保存文件(宏定义)
  7. #save("/service", "Service.java")
  8. ##包路径(宏定义)
  9. #setPackageSuffix("service")
  10. import com.baomidou.mybatisplus.extension.service.IService;
  11. import $!{
  12. tableInfo.savePackageName}.entity.$!tableInfo.name;
  13. ##表注释(宏定义)
  14. #tableComment("表服务接口")
  15. public interface $!{
  16. tableName} extends IService<$!tableInfo.name> {
  17. }

4、serviceImpl

  1. ##导入宏定义
  2. $!{
  3. define.vm}
  4. ##设置表后缀(宏定义)
  5. #setTableSuffix("ServiceImpl")
  6. ##保存文件(宏定义)
  7. #save("/service/impl", "ServiceImpl.java")
  8. ##包路径(宏定义)
  9. #setPackageSuffix("service.impl")
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import $!{
  12. tableInfo.savePackageName}.mapper.$!{
  13. tableInfo.name}Mapper;
  14. import $!{
  15. tableInfo.savePackageName}.entity.$!{
  16. tableInfo.name};
  17. import $!{
  18. tableInfo.savePackageName}.service.$!{
  19. tableInfo.name}Service;
  20. import org.springframework.stereotype.Service;
  21. ##表注释(宏定义)
  22. #tableComment("表服务实现类")
  23. @Service("$!tool.firstLowerCase($tableInfo.name)Service")
  24. public class $!{
  25. tableName} extends ServiceImpl<$!{
  26. tableInfo.name}Mapper, $!{
  27. tableInfo.name}> implements $!{
  28. tableInfo.name}Service {
  29. }

5、mapper

  1. ##导入宏定义
  2. $!{
  3. define.vm}
  4. ##设置表后缀(宏定义)
  5. #setTableSuffix("Mapper")
  6. ##保存文件(宏定义)
  7. #save("/mapper", "Mapper.java")
  8. ##包路径(宏定义)
  9. #setPackageSuffix("mapper")
  10. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  11. import $!{
  12. tableInfo.savePackageName}.entity.$!tableInfo.name;
  13. import org.springframework.stereotype.Repository;
  14. ##表注释(宏定义)
  15. #tableComment("表数据库访问层")
  16. @Repository
  17. public interface $!{
  18. tableName} extends BaseMapper<$!tableInfo.name> {
  19. }

6、mapper.xml

  1. ##引入mybatis支持
  2. $!{
  3. mybatisSupport.vm}
  4. ##设置保存名称与保存位置
  5. $!callback.setFileName($tool.append($!{
  6. tableInfo.name}, "Dao.xml"))
  7. $!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))
  8. ##拿到主键
  9. #if(!$tableInfo.pkColumn.isEmpty())
  10. #set($pk = $tableInfo.pkColumn.get(0))
  11. #end
  12. <?xml version="1.0" encoding="UTF-8"?>
  13. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  14. <mapper namespace="$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao">
  15. <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
  16. #foreach($column in $tableInfo.fullColumn)
  17. <result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
  18. #end
  19. </resultMap>
  20. </mapper>

7、entity

  1. ##导入宏定义
  2. $!{
  3. define.vm}
  4. ##保存文件(宏定义)
  5. #save("/entity", ".java")
  6. ##包路径(宏定义)
  7. #setPackageSuffix("entity")
  8. ##自动导入包(全局变量)
  9. $!{
  10. autoImport.vm}
  11. import lombok.AllArgsConstructor;
  12. import lombok.Data;
  13. import lombok.NoArgsConstructor;
  14. import java.io.Serializable;
  15. import com.baomidou.mybatisplus.annotation.TableName;
  16. ##表注释(宏定义)
  17. #tableComment("表实体类")
  18. @Data
  19. @AllArgsConstructor
  20. @NoArgsConstructor
  21. @TableName("$!{tableInfo.obj.name}")
  22. public class $!{
  23. tableInfo.name} implements Serializable {
  24. private static final long serialVersionUID = $!tool.serial();
  25. #foreach($column in $tableInfo.fullColumn)
  26. #if(${
  27. column.comment})/**
  28. * ${column.comment}
  29. */#end
  30. @TableField(value = "$!{column.obj.name}")
  31. private $!{
  32. tool.getClsNameByFullName($column.type)} $!{
  33. column.name};
  34. #end
  35. #foreach($column in $tableInfo.fullColumn)
  36. #end
  37. }

发表评论

表情:
评论列表 (有 0 条评论,140人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery定义

    1.对象级别的插件开发,即给jQuery对象添加方法,封装对象方法的插件,如:parent()、appendTo() 2.一种是类级别的插件开发,即给jQuery添加新的全局