MyBatisPlus代码生成器的使用示例

目录
  • 导入依赖
  • 表结构
  • 当前项目结构
  • 配置代码生成器
    • 1、globalConfig 全局策略配置
    • 2、dataSourceConfig 数据源配置

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

导入依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.19</version>
        </dependency>

更详细的代码生成器配置请查看官方文档:https://baomidou.com/pages/061573/#superentityclass

表结构

当前项目结构

配置代码生成器

1、globalConfig 全局策略配置

outputDir

  • 生成文件的输出目录
  • 默认值:D 盘根目录

fileOverride

  • 是否覆盖已有文件
  • 默认值:false

open

  • 是否打开输出目录
  • 默认值:true

enableCache

  • 是否在 xml 中添加二级缓存配置
  • 默认值:false

开发人员

  • 默认值:null

kotlin

  • 开启 Kotlin 模式
  • 默认值:false

swagger2

  • 开启 swagger2 模式
  • 默认值:false

activeRecord

  • 开启 ActiveRecord 模式
  • 默认值:false

baseResultMap

  • 开启 BaseResultMap
  • 默认值:false

baseColumnList

  • 开启 baseColumnList
  • 默认值:false

dateType

  • 时间类型对应策略
  • 默认值:TIME_PACK

entityName

  • 实体命名方式
  • 默认值:null 例如:%sEntity 生成 UserEntity

mapperName

  • mapper 命名方式
  • 默认值:null 例如:%sDao 生成 UserDao

xmlName

  • Mapper xml 命名方式
  • 默认值:null 例如:%sDao 生成 UserDao.xml

serviceName

  • service 命名方式
  • 默认值:null 例如:%sBusiness 生成 UserBusiness

serviceImplName

  • service impl 命名方式
  • 默认值:null 例如:%sBusinessImpl 生成 UserBusinessImpl

controllerName

  • controller 命名方式
  • 默认值:null 例如:%sAction 生成 UserAction

idType

  • 指定生成的主键的 ID 类型
  • 默认值:null

2、dataSourceConfig 数据源配置

dbQuery

  • 数据库信息查询类
  • 默认由 dbType 类型决定选择对应数据库内置实现

​ 实现 IDbQuery 接口自定义数据库查询 SQL 语句 定制化返回自己需要的内容

dbType

  • 数据库类型
  • 该类内置了常用的数据库类型【必须】

schemaName

  • 数据库 schema name
  • 例如 PostgreSQL 可指定为 public

typeConvert

  • 类型转换
  • 默认由 dbType 类型决定选择对应数据库内置实现

​ 实现 ITypeConvert 接口自定义数据库 字段类型 转换为自己需要的 java 类型,内置转换类型无法满足可实现 IColumnType 接口自定义

url

  • 驱动连接的 URL

driverName

  • 驱动名称

username

  • 数据库连接用户名

password

  • 数据库连接密码
package com.haoming;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.ArrayList;

public class ChengCode {
    public static void main(String[] args) {
        //构建代码生成器对象
        AutoGenerator mpg = new AutoGenerator();
        //1、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");//生成文件的输出目录
        gc.setAuthor("鼠皓明");//作者
        gc.setOpen(false);//是否打开输出目录
        gc.setFileOverride(false);//是否覆盖已有的文件
        gc.setServiceName("%sService");//去除Service的I前缀
        gc.setIdType(IdType.ID_WORKER);//主键生成策略
        //ONLY_DATE 只使用 java.util.date 代替,SQL_PACK 使用 java.sql 包下的,TIME_PACK 使用 java.time 包下的 java8 新的时间类型
        gc.setDateType(DateType.TIME_PACK);//数据库时间类型 到 实体类时间类型 对应策略
        gc.setSwagger2(true);//开启swagger2模式
        mpg.setGlobalConfig(gc);

        //2、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSl=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        dsc.setDbType(DbType.MYSQL);//数据库类型
        mpg.setDataSource(dsc);

        //3、包的配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("blog");//父包模块名
        pc.setParent("com.cheng");//父包名,如果为空,将下面子包名必须写全部, 否则就只需写子包名
        pc.setEntity("pojo");
        pc.setMapper("mapper");
        pc.setService("service");
        pc.setController("controller");
        mpg.setPackageInfo(pc);

        //4、策略配置
        StrategyConfig sy = new StrategyConfig();
        sy.setInclude("user");//设置要映射的表,可以设置多张
        sy.setNaming(NamingStrategy.underline_to_camel);//从数据库表到文件的命名策略,下划线转驼峰命名
        sy.setColumnNaming(NamingStrategy.underline_to_camel);//列的命名策略
        sy.setEntityLombokModel(true);//开启lombok支持
        sy.setLogicDeleteFieldName("deleted");//设置逻辑删除字段
        sy.setVersionFieldName("version");//设置乐观锁
        sy.setRestControllerStyle(true);//开启controller的restful命名
        sy.setControllerMappingHyphenStyle(true);//开启controller中请求映射的连字符样式,如:localhost:8080/hello_id_1
        //设置自动填充
        TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
        TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
        ArrayList<TableFill> tableFills = new ArrayList<>();
        tableFills.add(create_time);
        tableFills.add(update_time);
        mpg.setStrategy(sy);

        //执行代码生成器
        mpg.execute();
    }
}

执行代码生成器,查看项目结构的变化

代码生成器执行成功,自动生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码。

到此这篇关于MyBatisPlus代码生成器的使用示例的文章就介绍到这了,更多相关MyBatisPlus代码生成器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MybatisPlus代码生成器的使用方法详解

    搭建测试的数据库和表数据的SQL /* Navicat Premium Data Transfer Source Server : MySQL8.0 Source Server Type : MySQL Source Server Version : 80022 Source Host : localhost:3306 Source Schema : mybatisplus Target Server Type : MySQL Target Server Version : 80022 File

  • MyBatisPlus3.x中使用代码生成器(全注释)

    场景 MyBaitsPlus3.x与2.x是不一样的.这里使用3.0.1版本. 官方文档 https://mp.baomidou.com/guide/generator.html 这里在IDEA上的SpringBoot项目中进行代码生成测试. 实现 添加依赖 添加 代码生成器 依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artif

  • MybatisPlus使用代码生成器遇到的小问题(推荐)

    MybatisPlus 给我们提供了更加强大的代码生成器 MyBatisPlus 在3.0.3版本之前使用代码生成器因为存在默认依赖,所以不需要其他的依赖,项目中使用的是3.0.1的版本,所以不用添加其他依赖,添加之后反倒是会报错,实际上MP官网上已经说明了这一点,只是自己没注意才出现错误 3.0.3版本之后就需要添加如下依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-p

  • Java实战之实现一个好用的MybatisPlus代码生成器

    一.先看下项目结构 CodeGenerator:生成器主类 resources下的mapper.java.vm:一个模板类,用以在生成dao层时按模板来生成代码 比如我们想把代码按如下目录来生成: 代码层 代码生成位置 Controller层 com.yinchd.web.controller Service层 com.yinchd.web.service Service实现类 com.yinchd.web.service implMapper层 com.yinchd.web.mapper xm

  • MyBatisPlus代码生成器的使用示例

    目录 导入依赖 表结构 当前项目结构 配置代码生成器 1.globalConfig 全局策略配置 2.dataSourceConfig 数据源配置 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity.Mapper.Mapper XML.Service.Controller 等各个模块的代码,极大的提升了开发效率. 导入依赖 <dependency> <groupId>com.baomidou</

  • SpringBoot+MybatisPlus+代码生成器整合示例

    项目目录结构: pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.or

  • MyBatis-Plus代码生成器的使用详解

    1.引入依赖 <!--mybatisplus依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <!--代码生成模板--> <dependency>

  • springboot整合mybatis-plus代码生成器的配置解析

    AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity.Mapper.Mapper XML.Service.Controller 等各个模块的代码,极大的提升了开发效率. 具体实实现以及配置解析如下: package mybatis_plus; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annot

  • SpringBoot快速整合Mybatis、MybatisPlus(代码生成器)实现数据库访问功能

    1. 创建SpringBoot项目 1.1 引入依赖 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ht

  • MybatisPlus代码生成器含XML文件详解

    目录 MybatisPlus代码生成器含XML 所需依赖 代码如下 MybatisPlus代码生成器,自用版本不带xml MybatisPlus代码生成器含XML 所需依赖         <!--Mybatis-Plus-->         <dependency>             <groupId>com.baomidou</groupId>             <artifactId>mybatis-plus-boot-sta

  • MyBatisPlus代码生成器的原理及实现详解

    目录 一.代码生成器原理分析 二.代码生成器实现 一.代码生成器原理分析 我们在观察之前写的代码的时候,会发现很多重复的内容. 一个Book模板,,只需要把红色部分的内容全部更换成Book即可. 所以任何模板的开发,对于这段代码基本都是对红色部分的调整,所以我们把去掉红色内容的东西称为模板,红色部分称为参数,以后只需要传入不同的参数,就可以根据模板创建出不同模块的dao代码. 处理Dao可以抽取模块,其实我们常见的类都可以进行抽取,只要他们公共部分即可. ① 可以根据数据库表的表名来填充 ② 可

  • mybatisplus使用xml的示例详解

    目录 一.配置xml路径 二.编写Mapper里面的方法 三.编写sql 四.测试 五.更改Mapper里面方法入参 一.配置xml路径 mybatis-plus: mapper-locations: classpath:mapper/*.xml 二.编写Mapper里面的方法 public interface UserMapper extends BaseMapper { List findAll(); List<User> selectByXml(@Param("name&quo

随机推荐