广告
返回顶部
首页 > 资讯 > 精选 >如何使用EasyCode生成springboot+mybatis基础程序
  • 326
分享到

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

2023-06-28 17:06:50 326人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关如何使用EasyCode生成SpringBoot+mybatis基础程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言此文将分享我个人使用的一个easycode生成方法,生成之后

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

一、前言

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

二、正文

2.1 基础前提

2.1.1springboot配置

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

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-WEB</artifactId>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>Mysql-connector-java</artifactId>            <version>5.1.47</version>        </dependency>        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.3.2</version>        </dependency>        <dependency>            <groupId>com.GitHub.pagehelper</groupId>            <artifactId>pagehelper-spring-boot-starter</artifactId>            <version>1.2.5</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastJSON</artifactId>            <version>1.2.76</version>        </dependency>        <!--swagger3-->        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-boot-starter</artifactId>            <version>3.0.0</version>        </dependency>        <dependency>            <groupId>com.github.xiaoymin</groupId>            <artifactId>swagger-bootstrap-ui</artifactId>            <version>1.9.6</version>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <version>1.18.10</version>        </dependency>

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:mapperpublic 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;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;public class PageUtils {        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;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;public class ReturnData<T> {    private String status; // 状态码    private String msg; // 提示语    private T data;  // 数据集合    public static <T> ReturnData<T> SUCCESS(T data) {        return new ReturnData<T>(Status.SUCCESS.status, Status.SUCCESS.msg, data);    }    public static <T> ReturnData<T> SUCCESS(String msg) {        return new ReturnData<T>(Status.SUCCESS.status, msg);    }    public static <T> ReturnData<T> SUCCESS() {        return new ReturnData<T>(Status.SUCCESS.status, Status.SUCCESS.msg);    }    public static <T> ReturnData<T> GET_SUCCESS(T data) {        return new ReturnData<T>(Status.GET_SUCCESS.status, Status.GET_SUCCESS.msg, data);    }    public static <T> ReturnData<T> GET_SUCCESS(String msg) {        return new ReturnData<T>(Status.GET_SUCCESS.status, msg);    }    public static <T> ReturnData<T> GET_SUCCESS() {        return new ReturnData<T>(Status.GET_SUCCESS.status, Status.GET_SUCCESS.msg);    }    public static <T> ReturnData<T> ADD_SUCCESS() {        return new ReturnData<T>(Status.ADD_SUCCESS.status, Status.ADD_SUCCESS.msg);    }    public static <T> ReturnData<T> ADD_SUCCESS(T data) {        return new ReturnData<T>(Status.ADD_SUCCESS.status, Status.ADD_SUCCESS.msg,data);    }    public static <T> ReturnData<T> DELETE_SUCCESS() {        return new ReturnData<T>(Status.DELETE_SUCCESS.status, Status.DELETE_SUCCESS.msg);    }    public static <T> ReturnData<T> UPDATE_SUCCESS() {        return new ReturnData<T>(Status.UPDATE_SUCCESS.status, Status.UPDATE_SUCCESS.msg);    }    public static <T> ReturnData<T> UPDATE_SUCCESS(T data) {        return new ReturnData<T>(Status.UPDATE_SUCCESS.status, Status.UPDATE_SUCCESS.msg,data);    }    public static <T> ReturnData<T> FAIL(String msg) {        return new ReturnData<T>(Status.FAIL.status, msg);    }    public static <T> ReturnData<T> FAIL() {        return new ReturnData<T>(Status.FAIL.status, Status.FAIL.msg);    }    public static <T> ReturnData<T> GET_FAIL(String msg) {        return new ReturnData<T>(Status.GET_FAIL.status, msg);    }    public static <T> ReturnData<T> GET_FAIL() {        return new ReturnData<T>(Status.GET_FAIL.status, Status.FAIL.msg);    }    public static <T> ReturnData<T> ADD_FAIL() {        return new ReturnData<T>(Status.ADD_FAIL.status, Status.ADD_FAIL.msg);    }    public static <T> ReturnData<T> DELETE_FAIL() {        return new ReturnData<T>(Status.DELETE_FAIL.status, Status.DELETE_FAIL.msg);    }    public static <T> ReturnData<T> UPDATE_FAIL() {        return new ReturnData<T>(Status.UPDATE_FAIL.status, Status.UPDATE_FAIL.msg);    }    public static <T> ReturnData<T> ERROR(String msg) {        return new ReturnData<T>(Status.ERROR.status, msg);    }    public static <T> ReturnData<T> ERROR() {        return new ReturnData<T>(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;    }        @Override    public String toString() {        return JSON.toJSONString(this);    }        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;@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

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

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

2.2.2 设置模板

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

如图:依次打开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})#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;public interface $!{tableName} {        $!{tableInfo.name} selectById($!pk.shortType $!pk.name);        List<$!{tableInfo.name}> selectPage(@Param("start") int start, @Param("limit") int limit);        List<$!{tableInfo.name}> selectAll();            List<$!{tableInfo.name}> selectList($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));        int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));int batchInsert(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s);        int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));        int deleteById($!pk.shortType $!pk.name);        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;public interface $!{tableName} {        $!{tableInfo.name} selectById($!pk.shortType $!pk.name);        PageResult selectPage(int start, int limit);        List<$!{tableInfo.name}> selectAll();            List<$!{tableInfo.name}> selectList($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));        int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));int batchInsert(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s);        $!{tableInfo.name} update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));        int deleteById($!pk.shortType $!pk.name);            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;@Service("$!tool.firstLowerCase($!{tableInfo.name})Service")public class $!{tableName} implements $!{tableInfo.name}Service {    @Resource    private $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao;        @Override    public $!{tableInfo.name} selectById($!pk.shortType $!pk.name) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectById($!pk.name);    }        @Override    public PageResult selectPage(int start, int limit) {        PageRequest pageRequest=new PageRequest(start,limit);        return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest));    }        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);    }        @Override    public List<$!{tableInfo.name}> selectAll() {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectAll();    }            @Override    public List<$!{tableInfo.name}> selectList($!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})}) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.selectList($!{tool.firstLowerCase($!{tableInfo.name})});    }            @Override    public int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.insert($!tool.firstLowerCase($!{tableInfo.name}));    }        @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);    }        @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)());    }        @Override    public int deleteById($!pk.shortType $!pk.name) {        return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.deleteById($!pk.name);    }            @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;@RestController@RequestMapping("/$!tool.firstLowerCase($tableInfo.name)")public class $!{tableName} {        @Resource    private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;        @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();    }            @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();    }        @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();    }        @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();    }        @RequestMapping(value = "selectAll", method = RequestMethod.GET)    public ReturnData<List<$tableInfo.name>> 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();    }        @RequestMapping(value = "selectPage", method = RequestMethod.GET)    public ReturnData<PageResult> 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<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao">    <!-- 结果集 -->    <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">#foreach($column in $tableInfo.fullColumn)        <result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>#end    </resultMap>        <!-- 基本字段 -->    <sql id="Base_Column_List">        #allSqlColumn()    </sql>        <!-- 查询单个 -->    <select id="selectById" resultMap="$!{tableInfo.name}Map">        select          <include refid="Base_Column_List" />        from $!tableInfo.obj.name        where $!pk.obj.name = #{$!pk.name}    </select>    <!-- 分页查询 -->    <select id="selectPage" resultMap="$!{tableInfo.name}Map">        select        <include refid="Base_Column_List" />        from $!tableInfo.obj.name        limit #{start},#{limit}    </select>    <!-- 查询全部 -->    <select id="selectAll" resultMap="$!{tableInfo.name}Map">        select        <include refid="Base_Column_List" />        from $!tableInfo.obj.name    </select>    <!--通过实体作为筛选条件查询-->    <select id="selectList" resultMap="$!{tableInfo.name}Map">        select        <include refid="Base_Column_List" />        from $!tableInfo.obj.name        <where>        #foreach($column in $tableInfo.fullColumn)            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">                and $!column.obj.name = #{$!column.name}            </if>        #end        </where>    </select>    <!-- 新增所有列 -->    <insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true">        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>        <!-- 批量新增 -->    <insert id="batchInsert">        insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($velocityHasNext), #end#end)        values         <foreach collection="$!tool.firstLowerCase($!{tableInfo.name})s" item="item" index="index" separator=",">        (            #foreach($column in $tableInfo.fullColumn)            #{item.$!{column.name}}#if($velocityHasNext), #end#end         )         </foreach>    </insert>    <!-- 通过主键修改数据 -->    <update id="update">        update $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}        <set>        #foreach($column in $tableInfo.otherColumn)            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">                $!column.obj.name = #{$!column.name},            </if>        #end        </set>        where $!pk.obj.name = #{$!pk.name}    </update>    <!--通过主键删除-->    <delete id="deleteById">        delete from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}    </delete>        <!-- 总数 -->    <select id="count" resultType="int">        select count(*) from $!{tableInfo.obj.name}    </select></mapper>

2.3 生成方法

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

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

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

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

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

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

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

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

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

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

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

--结束END--

本文标题: 如何使用EasyCode生成springboot+mybatis基础程序

本文链接: https://www.lsjlt.com/news/321021.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用EasyCode生成springboot+mybatis基础程序
    这篇文章给大家分享的是有关如何使用EasyCode生成springboot+mybatis基础程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言此文将分享我个人使用的一个easycode生成方法,生成之后...
    99+
    2023-06-28
  • 使用 EasyCode生成springboot+mybatis基础程序的实现示例
    目录一、前言二、正文2.1 基础前提2.1.1springboot配置2.1.1 基础工具类2.2 模板设置2.2.1安装idea插件:EasyCode2.2.2 设置模板2.3 生...
    99+
    2022-11-13
  • 使用SpringBoot如何实现集成mybatis
    使用SpringBoot如何实现集成mybatis?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、使用mybatis-spring-boot-starter添...
    99+
    2023-05-31
    springboot mybatis
  • 使用springboot如何实现对mybatis集成
    本篇文章为大家展示了使用springboot如何实现对mybatis集成,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在pom文件中添加mybatis的依赖: <dependency>...
    99+
    2023-05-31
    springboot mybatis
  • 使用mybatis如何设置禁止生成Example类
    今天就跟大家聊聊有关使用mybatis如何设置禁止生成Example类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。只需要在配置要生成的table表中添加几个配置属性就行了。&nbs...
    99+
    2023-05-31
    mybatis example ample
  • 如何用Python生成表白程序
    本篇文章给大家分享的是有关如何用Python生成表白程序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。虐狗节已经到了,据我了解好多人在愚人节这一天表妹,套路多多,拒绝了说今天是...
    99+
    2023-06-02
  • 使用MyBatis-Generator如何自动生成映射文件
    目录MyBatis-Generator自动生成映射文件1、使用cmd命令方式生成2、使用maven方式生成3、如果开发工具为eclipse自动生成MyBatis映射文件工具问题MyB...
    99+
    2022-11-13
  • mybatis-plus 如何使用雪花算法ID生成策略
    目录mybatis-plus 可以通过@TableId注解指定主键生成策略看一下源码大概找一下雪花算法的实现方式自定义ID生成器实现Mybatis-plus 中生成雪花算法id的工具...
    99+
    2022-11-12
  • springboot中如何使用雪花算法生成雪花ID
    这篇文章主要介绍“springboot中如何使用雪花算法生成雪花ID”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot中如何使用雪花算法生成雪花ID”文章能帮助大家解决问题。1、什么...
    99+
    2023-07-05
  • 使用redis如何生成自增序列号码
    目录Redis生成自增序列号码导入依赖yml 配置工具方法redis生成唯一编号redis生成自增序列号码 导入依赖 <!--redis--> <dependency> <groupId&...
    99+
    2022-11-23
    redis 自增 redis生成自增序列号 redis自增序列号
  • Entity Framework Core如何使用控制台程序生成数据库表
    这篇文章主要介绍了Entity Framework Core如何使用控制台程序生成数据库表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、引言我们使用C...
    99+
    2023-06-29
  • 教你如何使用google.zxing结合springboot生成二维码功能
    目录Zxing原生方式添加依赖二维码生成工具类添加Controller添加测试页面Hutool的方式添加依赖创建QRCodeService添加Controller效果测试我们使用两种...
    99+
    2022-11-13
  • SQL如何使用ROW_NUMBER() OVER函数生成序列号
    这篇文章给大家介绍SQL如何使用ROW_NUMBER() OVER函数生成序列号,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ...
    99+
    2023-06-22
  • 如何使用Linux seq命令生成数字序列
    这篇文章主要讲解了“如何使用Linux seq命令生成数字序列”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Linux seq命令生成数字序列”吧!Linux 的 seq 命令可以以...
    99+
    2023-06-16
  • 如何利用unicloud生成微信小程序分享码
    目录一,方案二,实现思路三,完整的代码实现四,坑点总结一,方案 看了官方的文档,获取小程序码有三种,我采用的是第二种:生成数量不受限制的分享码。 对应的官方文档:https://de...
    99+
    2022-12-19
    uniapp 微信小程序分享 unicloud 微信小程序 如何生成小程序分享码
  • ASP 应用程序中如何使用 Git 追踪二维码生成历史?
    随着二维码技术的不断普及,越来越多的应用程序开始使用二维码作为重要的交互手段。在应用程序中,我们需要能够追踪二维码生成历史,以便及时发现问题并进行修复。Git 是一个流行的版本控制系统,可以帮助我们有效地管理应用程序的代码和历史。本文将介...
    99+
    2023-10-06
    二维码 日志 git
  • 如何使用Python打包程序生成高效的二维码编程算法?
    随着二维码的广泛应用,越来越多的开发者开始寻找高效的二维码编程算法。Python作为一门流行的编程语言,它强大的数据处理和可视化功能,使它成为生成二维码的理想工具。本文将介绍如何使用Python打包程序生成高效的二维码编程算法。 一、Py...
    99+
    2023-08-26
    打包 编程算法 二维码
  • Java高并发编程基础之如何使用AQS
    本篇内容主要讲解“Java高并发编程基础之如何使用AQS”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java高并发编程基础之如何使用AQS”吧! 引言曾经有一道比较比较经典的面试题“...
    99+
    2023-06-15
  • 【教程】如何使用Java生成PDF文档?
    在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享。而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行。下面,我们将为您介绍如何使用Java生成PDF文档...
    99+
    2023-09-02
    java servlet jvm
  • 如何使用LiveDocx和Zend Framework生成基于模板的文档
    小编给大家分享一下如何使用LiveDocx和Zend Framework生成基于模板的文档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用PHP生成打印良好的格...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作