千家信息网

如何使用EasyCode生成springboot+mybatis基础程序

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,这篇文章给大家分享的是有关如何使用EasyCode生成springboot+mybatis基础程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言此文将分享我个人使用
千家信息网最后更新 2025年01月29日如何使用EasyCode生成springboot+mybatis基础程序

这篇文章给大家分享的是有关如何使用EasyCode生成springboot+mybatis基础程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、前言

此文将分享我个人使用的一个easycode生成方法,生成之后可以直接运行,这也就意味着,生成的代码会更加规范化。规范化就意味着会有更多的约束。

二、正文

2.1 基础前提

2.1.1springboot配置

引入所需jar包
pom.xml加入一下依赖

                      org.springframework.boot            spring-boot-starter                            org.springframework.boot            spring-boot-starter-test            test                            org.springframework.boot            spring-boot-starter-web                            mysql            mysql-connector-java            5.1.47                            org.mybatis.spring.boot            mybatis-spring-boot-starter            1.3.2                            com.github.pagehelper            pagehelper-spring-boot-starter            1.2.5                            com.alibaba            fastjson            1.2.76                                    io.springfox            springfox-boot-starter            3.0.0                            com.github.xiaoymin            swagger-bootstrap-ui            1.9.6                            org.projectlombok            lombok            1.18.10        

application.yml配置

spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC    username: xxx    password: xxxmybatis:  type-aliases-package: xxx.entity  mapper-locations: classpath:mapper/*.xml# pagehelperpagehelper:  helperDialect: mysql  reasonable: true  supportMethodsArguments: true  params: count=countSql#showSqllogging:  level:    top:      yuechenc:        yueduapi:          mapper : debug
2.1.1 基础工具类

以下是我个人封装的pagehelper分页工具类和统一的返回以及swagger配置

pagehelper工具类

如上图所示,在启动类所在目录下新建目录common.page/common.util
在page目录新建类PageRequest.java

package xxx.common.page;/** * @author Zhiwei Wang * @version $1.0 * @description 分页请求 * @date 2022/1/19 9:25 * @history */public class PageRequest {    /**     * 当前页码     */    private int pageNum;    /**     * 每页数量     */    private int pageSize;    public PageRequest(int start, int limit) {        pageNum=start;        pageSize=limit;    }    public int getPageNum() {        return pageNum;    }    public void setPageNum(int pageNum) {        this.pageNum = pageNum;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }}

在page目录新建类PageResult.java

package xxx.common.page;import java.util.List;/** * @author Zhiwei Wang * @version $1.0 * @name PageResult * @description 分页返回结果 * @date 2022/1/19 9:25 * @history */public class PageResult {    /**     * 当前页码     */    private int pageNum;    /**     * 每页数量     */    private int pageSize;    /**     * 记录总数     */    private long totalSize;    /**     * 页码总数     */    private int totalPages;    /**     * 数据模型     */    private List content;    public int getPageNum() {        return pageNum;    }    public void setPageNum(int pageNum) {        this.pageNum = pageNum;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public long getTotalSize() {        return totalSize;    }    public void setTotalSize(long totalSize) {        this.totalSize = totalSize;    }    public int getTotalPages() {        return totalPages;    }    public void setTotalPages(int totalPages) {        this.totalPages = totalPages;    }    public List getContent() {        return content;    }    public void setContent(List content) {        this.content = content;    }}

在util目录下新建工具类PageUtils.java

package xxx.common.util;import com.github.pagehelper.PageInfo;import xxx.common.page.PageRequest;import xxx.common.page.PageResult;/** * @author Zhiwei Wang * @version $ * @name PageUtil * @description  * @date 2022/1/19 9:26 * @history */public class PageUtils {    /**     * 将分页信息封装到统一的接口     * @param pageRequest     * @param pageInfo     * @return     */    public static PageResult getPageResult(PageRequest pageRequest, PageInfo pageInfo) {        PageResult pageResult = new PageResult();        pageResult.setPageNum(pageInfo.getPageNum());        pageResult.setPageSize(pageInfo.getPageSize());        pageResult.setTotalSize(pageInfo.getTotal());        pageResult.setTotalPages(pageInfo.getPages());        pageResult.setContent(pageInfo.getList());        return pageResult;    }}

统一返回体
在common目录下新建Status.java

package xxx.common;/** * @author Zhiwei Wang * @version $ * @name Status * @description 返回信息枚举 * @date 2022/1/18 21:01 * @history */public enum Status {    FAIL("101", "失败")    ,GET_FAIL("111", "查询失败")    ,ADD_FAIL("121", "添加失败")    ,DELETE_FAIL("131", "删除失败")    ,UPDATE_FAIL("141", "修改失败")    ,SUCCESS("100", "成功")    ,GET_SUCCESS("110", "查询成功")    ,ADD_SUCCESS("120", "添加成功")    ,DELETE_SUCCESS("130", "删除成功")    ,UPDATE_SUCCESS("140", "修改成功")    ,ERROR("201", "错误")    ,USER_NOFOUND("211", "用户不存在")    ,ERROR_ACCOUNT("212", "账号或密码错误")    ,USER_EXIST("213", "用户已存在")    ,USER_LOCK("214", "账号被锁定,请联系管理员")    ,IP_LOCK("215", "IP 被锁定,请联系管理员")    ,PARAM_ERROR("303", "参数错误")    ,Token_Expired("1044", "token Invalid expired");    public String status; // 状态码    public String msg; // 提示语    Status(String status, String msg) {        this.status = status;        this.msg = msg;    }}

在common目录下新建ReturnData.java

package xxx.common;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;/** * @author Zhiwei Wang * @version $ * @name ReturnData * @description 响应数据结构封装 * @date 2022/1/18 20:59 * @history */public class ReturnData {    private String status; // 状态码    private String msg; // 提示语    private T data;  // 数据集合    public static  ReturnData SUCCESS(T data) {        return new ReturnData(Status.SUCCESS.status, Status.SUCCESS.msg, data);    }    public static  ReturnData SUCCESS(String msg) {        return new ReturnData(Status.SUCCESS.status, msg);    }    public static  ReturnData SUCCESS() {        return new ReturnData(Status.SUCCESS.status, Status.SUCCESS.msg);    }    public static  ReturnData GET_SUCCESS(T data) {        return new ReturnData(Status.GET_SUCCESS.status, Status.GET_SUCCESS.msg, data);    }    public static  ReturnData GET_SUCCESS(String msg) {        return new ReturnData(Status.GET_SUCCESS.status, msg);    }    public static  ReturnData GET_SUCCESS() {        return new ReturnData(Status.GET_SUCCESS.status, Status.GET_SUCCESS.msg);    }    public static  ReturnData ADD_SUCCESS() {        return new ReturnData(Status.ADD_SUCCESS.status, Status.ADD_SUCCESS.msg);    }    public static  ReturnData ADD_SUCCESS(T data) {        return new ReturnData(Status.ADD_SUCCESS.status, Status.ADD_SUCCESS.msg,data);    }    public static  ReturnData DELETE_SUCCESS() {        return new ReturnData(Status.DELETE_SUCCESS.status, Status.DELETE_SUCCESS.msg);    }    public static  ReturnData UPDATE_SUCCESS() {        return new ReturnData(Status.UPDATE_SUCCESS.status, Status.UPDATE_SUCCESS.msg);    }    public static  ReturnData UPDATE_SUCCESS(T data) {        return new ReturnData(Status.UPDATE_SUCCESS.status, Status.UPDATE_SUCCESS.msg,data);    }    public static  ReturnData FAIL(String msg) {        return new ReturnData(Status.FAIL.status, msg);    }    public static  ReturnData FAIL() {        return new ReturnData(Status.FAIL.status, Status.FAIL.msg);    }    public static  ReturnData GET_FAIL(String msg) {        return new ReturnData(Status.GET_FAIL.status, msg);    }    public static  ReturnData GET_FAIL() {        return new ReturnData(Status.GET_FAIL.status, Status.FAIL.msg);    }    public static  ReturnData ADD_FAIL() {        return new ReturnData(Status.ADD_FAIL.status, Status.ADD_FAIL.msg);    }    public static  ReturnData DELETE_FAIL() {        return new ReturnData(Status.DELETE_FAIL.status, Status.DELETE_FAIL.msg);    }    public static  ReturnData UPDATE_FAIL() {        return new ReturnData(Status.UPDATE_FAIL.status, Status.UPDATE_FAIL.msg);    }    public static  ReturnData ERROR(String msg) {        return new ReturnData(Status.ERROR.status, msg);    }    public static  ReturnData ERROR() {        return new ReturnData(Status.ERROR.status, Status.ERROR.msg);    }    public ReturnData(String status, String msg, T data) {        this.status = status;        this.msg = msg;        this.data = data;    }    public ReturnData(String status, String msg) {        this.status = status;        this.msg = msg;    }    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public T getData() {        return data;    }    public void setData(T data) {        this.data = data;    }    /**     * 如果字段为null,该字段不显示     */    @Override    public String toString() {        return JSON.toJSONString(this);    }    /**     * 返回全部字段,包括null     *     * @return     */    public String toAllString() {        return JSON.toJSONString(this, SerializerFeature.WriteMapNullValue);    }}

swagger3配置
在common目录下新建Swagger3Config.java

package xxx.common;import io.swagger.annotations.ApiOperation;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;/** * @author Zhiwei Wang * @version $ * @name Swagger3Config * @description * @date 2022/1/18 21:40 * @history */@Configurationpublic class Swagger3Config {    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.OAS_30)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("xxx.controller"))                .paths(PathSelectors.any())                .build();    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("Swagger3接口文档")                .description("测试API")                .contact(new Contact("测试API", "http://localhost:8080/swagger-ui/index.html", "1757895437@qq.com"))                .version("1.0")                .build();    }}

2.2 模板设置

2.2.1安装idea插件:EasyCode

如图所示,打开idea的设置界面,选择插件,搜索EasyCode,点击安装即可

2.2.2 设置模板

如图:依次打开idea设置->其他设置->EasyCode-MyBatisCodeHelper->Template Setting
右边的就是生成代码的模板,一次将下列模板粘贴到里面即可:

entity

##引入宏定义$!define##使用宏定义设置回调(保存位置与文件后缀)#save("/entity", ".java")##使用宏定义设置包后缀#setPackageSuffix("entity")##使用全局变量实现默认包导入$!autoImportimport java.io.Serializable;##使用宏定义实现类注释信息#tableComment("实体类")public class $!{tableInfo.name} implements Serializable {    private static final long serialVersionUID = $!tool.serial();#foreach($column in $tableInfo.fullColumn)    #if(${column.comment})/**    * ${column.comment}    */#end    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end#foreach($column in $tableInfo.fullColumn)    ##使用宏定义实现get,set方法    #getSetMethod($column)#end    @Override    public String toString(){        return "$tableInfo.name {" +        #foreach($column in $tableInfo.fullColumn)    "$column.name : " + $column.name + ", " +        #end        '}';    }}

dao

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Dao"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))##拿到主键#if(!$tableInfo.pkColumn.isEmpty())    #set($pk = $tableInfo.pkColumn.get(0))#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};import org.apache.ibatis.annotations.Param;import java.util.List;import java.util.Map;/** * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层 * * @author $!author * @since $!time.currTime() */public interface $!{tableName} {    /**     * 通过ID查询单条数据     *     * @param $!pk.name 主键     * @return 实例对象     */    $!{tableInfo.name} selectById($!pk.shortType $!pk.name);            /**     * 分页查询     *     * @param start 查询起始位置     * @param limit 查询条数     * @return 对象列表     */    List<$!{tableInfo.name}> selectPage(@Param("start") int start, @Param("limit") int limit);    /**     * 查询全部     *     * @return 对象列表     */    List<$!{tableInfo.name}> selectAll();        /**     * 通过实体作为筛选条件查询     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 对象列表     */    List<$!{tableInfo.name}> selectList($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));    /**     * 新增数据     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 影响行数     */    int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));                /**     * 批量新增     *     * @param $!tool.firstLowerCase($!{tableInfo.name})s 实例对象的集合     * @return 影响行数     */        int batchInsert(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s);            /**     * 修改数据     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 影响行数     */    int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));    /**     * 通过主键删除数据     *     * @param $!pk.name 主键     * @return 影响行数     */    int deleteById($!pk.shortType $!pk.name);    /**     * 查询总数据数     *     * @return 数据总数     */    int count();}

service

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Service"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))##拿到主键#if(!$tableInfo.pkColumn.isEmpty())    #set($pk = $tableInfo.pkColumn.get(0))#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};import java.util.List;import java.util.Map;import $!{tableInfo.savePackageName}.common.page.PageResult;/** * $!{tableInfo.comment}($!{tableInfo.name})表服务接口 * * @author $!author * @since $!time.currTime() */public interface $!{tableName} {    /**     * 通过ID查询单条数据     *     * @param $!pk.name 主键     * @return 实例对象     */    $!{tableInfo.name} selectById($!pk.shortType $!pk.name);    /**     * 分页查询     *     * @param start 查询起始位置     * @param limit 查询条数     * @return 对象列表     */    PageResult selectPage(int start, int limit);    /**                                                                             * 查询全部     *     * @return 对象列表     */    List<$!{tableInfo.name}> selectAll();        /**     * 通过实体作为筛选条件查询     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 对象列表     */    List<$!{tableInfo.name}> selectList($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));    /**     * 新增数据     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 影响行数     */    int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));                /**     * 批量新增     *     * @param $!tool.firstLowerCase($!{tableInfo.name})s 实例对象的集合     * @return 影响行数     */        int batchInsert(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s);            /**     * 修改数据     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 修改     */    $!{tableInfo.name} update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));    /**     * 通过主键删除数据     *     * @param $!pk.name 主键     * @return 影响行数     */    int deleteById($!pk.shortType $!pk.name);        /**     * 查询总数据数     *     * @return 数据总数     */    int count();}

serviceimpl

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))##拿到主键#if(!$tableInfo.pkColumn.isEmpty())    #set($pk = $tableInfo.pkColumn.get(0))#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;import org.springframework.stereotype.Service;import $!{tableInfo.savePackageName}.common.page.PageResult;import $!{tableInfo.savePackageName}.common.page.PageRequest;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import $!{tableInfo.savePackageName}.common.util.PageUtils;import javax.annotation.Resource;import java.util.List;import java.util.Map;/** * $!{tableInfo.comment}($!{tableInfo.name}表)服务实现类 * * @author $!author * @since $!time.currTime() */@Service("$!tool.firstLowerCase($!{tableInfo.name})Service")public class $!{tableName} implements $!{tableInfo.name}Service {    @Resource    private $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao;    /**     * 通过ID查询单条数据     *     * @param $!pk.name 主键     * @return 实例对象     */    @Override    public $!{tableInfo.name} selectById($!pk.shortType $!pk.name) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectById($!pk.name);    }    /**     * 分页查询     *     * @param start 查询起始位置     * @param limit 查询条数     * @return 对象列表     */    @Override    public PageResult selectPage(int start, int limit) {        PageRequest pageRequest=new PageRequest(start,limit);        return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest));    }    /**     * 调用分页插件完成分页     * @param pageRequest     * @return     */    private PageInfo<$!{tableInfo.name}> getPageInfo(PageRequest pageRequest) {        int pageNum = pageRequest.getPageNum();        int pageSize = pageRequest.getPageSize();        PageHelper.startPage(pageNum, pageSize);        List<$!{tableInfo.name}> $!{tool.firstLowerCase($!{tableInfo.name})}s = this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectAll();        return new PageInfo<>($!{tool.firstLowerCase($!{tableInfo.name})}s);    }    /**     * 查询所有     *     * @return 实例对象的集合     */    @Override    public List<$!{tableInfo.name}> selectAll() {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectAll();    }        /**     * 根据条件查询     *     * @return 实例对象的集合     */    @Override    public List<$!{tableInfo.name}> selectList($!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})}) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectList($!{tool.firstLowerCase($!{tableInfo.name})});    }        /**     * 新增数据     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 实例对象     */    @Override    public int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.insert($!tool.firstLowerCase($!{tableInfo.name}));    }    /**     * 批量新增     *     * @param $!tool.firstLowerCase($!{tableInfo.name})s 实例对象的集合     * @return 生效的条数     */    @Override    public int batchInsert(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.batchInsert($!tool.firstLowerCase($!{tableInfo.name})s);    }    /**     * 修改数据     *     * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象     * @return 实例对象     */    @Override    public $!{tableInfo.name} update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {        this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.update($!tool.firstLowerCase($!{tableInfo.name}));        return this.selectById($!{tool.firstLowerCase($!{tableInfo.name})}.get$!tool.firstUpperCase($pk.name)());    }    /**     * 通过主键删除数据     *     * @param $!pk.name 主键     * @return 是否成功     */    @Override    public int deleteById($!pk.shortType $!pk.name) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.deleteById($!pk.name);    }        /**     * 查询总数据数     *     * @return 数据总数     */    @Override    public int count(){        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.count();    }}

controller

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Controller"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))##拿到主键#if(!$tableInfo.pkColumn.isEmpty())    #set($pk = $tableInfo.pkColumn.get(0))#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;import org.springframework.web.bind.annotation.*;import $!{tableInfo.savePackageName}.common.ReturnData;import $!{tableInfo.savePackageName}.common.page.PageResult;import java.util.List;import javax.annotation.Resource;/** * $!{tableInfo.comment}($!{tableInfo.name})控制层 * * @author $!author * @since $!time.currTime() */@RestController@RequestMapping("/$!tool.firstLowerCase($tableInfo.name)")public class $!{tableName} {    /**     * 服务对象     */    @Resource    private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;    /**     * 通过主键查询单条数据     *     * @param $!tool.firstLowerCase($tableInfo.name) 参数对象     * @return 单条数据     */    @RequestMapping(value = "get", method = RequestMethod.GET)    public ReturnData<$tableInfo.name> selectOne($tableInfo.name $!tool.firstLowerCase($tableInfo.name)) {        $tableInfo.name result = $!{tool.firstLowerCase($tableInfo.name)}Service.selectById($!{tool.firstLowerCase($tableInfo.name)}.getId());        if(result != null){            return ReturnData.GET_SUCCESS(result);        }        return ReturnData.GET_FAIL();    }        /**     * 新增一条数据     *     * @param $!tool.firstLowerCase($tableInfo.name) 实体类     * @return Response对象     */    @RequestMapping(value = "insert", method = RequestMethod.POST)    public ReturnData<$tableInfo.name> insert(@RequestBody $tableInfo.name $!tool.firstLowerCase($tableInfo.name)) {        int result = $!{tool.firstLowerCase($tableInfo.name)}Service.insert($!tool.firstLowerCase($tableInfo.name));        if (result > 0) {            return ReturnData.ADD_SUCCESS();        }        return ReturnData.ADD_FAIL();    }    /**     * 修改一条数据     *     * @param $!tool.firstLowerCase($tableInfo.name) 实体类     * @return Response对象     */    @RequestMapping(value = "update", method = RequestMethod.PUT)    public ReturnData<$tableInfo.name> update(@RequestBody $tableInfo.name $!tool.firstLowerCase($tableInfo.name)) {        $tableInfo.name result = $!{tool.firstLowerCase($tableInfo.name)}Service.update($!tool.firstLowerCase($tableInfo.name));        if (result != null) {            return ReturnData.UPDATE_SUCCESS(result);        }        return ReturnData.UPDATE_FAIL();    }    /**     * 删除一条数据     *     * @param $!tool.firstLowerCase($tableInfo.name) 参数对象     * @return Response对象     */    @RequestMapping(value = "delete", method = RequestMethod.DELETE)    public ReturnData<$tableInfo.name> delete($tableInfo.name $!tool.firstLowerCase($tableInfo.name)) {        int result = $!{tool.firstLowerCase($tableInfo.name)}Service.deleteById($!{tool.firstLowerCase($tableInfo.name)}.getId());        if (result > 0) {            return ReturnData.DELETE_SUCCESS();        }        return ReturnData.DELETE_FAIL();    }    /**     * 查询全部     *     * @return Response对象     */    @RequestMapping(value = "selectAll", method = RequestMethod.GET)    public ReturnData> selectAll() {        List<$tableInfo.name> $!tool.firstLowerCase($tableInfo.name)s = $!{tool.firstLowerCase($tableInfo.name)}Service.selectAll();        if ($!tool.firstLowerCase($tableInfo.name)s != null) {            return ReturnData.GET_SUCCESS($!tool.firstLowerCase($tableInfo.name)s);        }        return ReturnData.GET_FAIL();    }    /**     * 分页查询     *     * @param start 偏移     * @param limit 条数     * @return Response对象     */    @RequestMapping(value = "selectPage", method = RequestMethod.GET)    public ReturnData selectPage(Integer start, Integer limit) {        PageResult pageResult = $!{tool.firstLowerCase($tableInfo.name)}Service.selectPage(start, limit);        if (pageResult != null) {            return ReturnData.GET_SUCCESS(pageResult);        }        return ReturnData.GET_FAIL();    }    }

mapper.xml

##引入mybatis支持$!mybatisSupport##设置保存名称与保存位置$!callback.setFileName($tool.append($!{tableInfo.name}, "Dao.xml"))$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))##拿到主键#if(!$tableInfo.pkColumn.isEmpty())    #set($pk = $tableInfo.pkColumn.get(0))#end        #foreach($column in $tableInfo.fullColumn)        #end                        #allSqlColumn()                                                        insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end)        values ( #foreach($column in $tableInfo.fullColumn)#{$!{column.name}}#if($velocityHasNext), #end#end)                        insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end)        values                 (            #foreach($column in $tableInfo.fullColumn)            #{item.$!{column.name}}#if($velocityHasNext), #end#end         )                             update $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}                #foreach($column in $tableInfo.otherColumn)                            $!column.obj.name = #{$!column.name},                    #end                where $!pk.obj.name = #{$!pk.name}                    delete from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}                

2.3 生成方法

首先使用idea连接数据库,此处省略,如果有不知道怎么连接的,请参考:mysql连接idea详细教程

如图选择需要生成代码的表->右键->EasyCodeMybatisCodeHelper->Generate_Code,弹出如下窗口

Module:选择要生成到那个模块
Package:填写自己的包名
Path:工程路径

选择要生成的类,点击ok即可看到工程里已经生成了相应的类

注意:使用mybatis需要在启动类中加入注释

//扫描dao的路径配置@MapperScan(".dao")

感谢各位的阅读!关于"如何使用EasyCode生成springboot+mybatis基础程序"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0