热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MyBatisPlus——代码生成器的使用

MyBatis-Plus——代码生成器的使用AutoGenerator是MyBatis-Plus的代码生成器,通过AutoGenerator可以快速生成Entity
MyBatis-Plus——代码生成器的使用

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

导入依赖

<dependency><groupId>com.baomidougroupId><artifactId>mybatis-plus-boot-starterartifactId><version>3.0.5version>dependency><dependency><groupId>org.apache.velocitygroupId><artifactId>velocity-engine-coreartifactId><version>2.0version>dependency><dependency><groupId>io.swaggergroupId><artifactId>swagger-annotationsartifactId><version>1.5.19version>dependency>

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

表结构

在这里插入图片描述

当前项目结构

在这里插入图片描述

配置代码生成器

1、globalConfig 全局策略配置

outputDir

  • 生成文件的输出目录
  • 默认值&#xff1a;D 盘根目录

fileOverride

  • 是否覆盖已有文件
  • 默认值&#xff1a;false

open

  • 是否打开输出目录
  • 默认值&#xff1a;true

enableCache

  • 是否在 xml 中添加二级缓存配置
  • 默认值&#xff1a;false

开发人员

  • 默认值&#xff1a;null

kotlin

  • 开启 Kotlin 模式
  • 默认值&#xff1a;false

swagger2

  • 开启 swagger2 模式
  • 默认值&#xff1a;false

activeRecord

  • 开启 ActiveRecord 模式
  • 默认值&#xff1a;false

baseResultMap

  • 开启 BaseResultMap
  • 默认值&#xff1a;false

baseColumnList

  • 开启 baseColumnList
  • 默认值&#xff1a;false

dateType

  • 时间类型对应策略
  • 默认值&#xff1a;TIME_PACK

entityName

  • 实体命名方式
  • 默认值&#xff1a;null 例如&#xff1a;%sEntity 生成 UserEntity

mapperName

  • mapper 命名方式
  • 默认值&#xff1a;null 例如&#xff1a;%sDao 生成 UserDao

xmlName

  • Mapper xml 命名方式
  • 默认值&#xff1a;null 例如&#xff1a;%sDao 生成 UserDao.xml

serviceName

  • service 命名方式
  • 默认值&#xff1a;null 例如&#xff1a;%sBusiness 生成 UserBusiness

serviceImplName

  • service impl 命名方式
  • 默认值&#xff1a;null 例如&#xff1a;%sBusinessImpl 生成 UserBusinessImpl

controllerName

  • controller 命名方式
  • 默认值&#xff1a;null 例如&#xff1a;%sAction 生成 UserAction

idType

  • 指定生成的主键的 ID 类型
  • 默认值&#xff1a;null

2、dataSourceConfig 数据源配置

dbQuery

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

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

dbType

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

schemaName

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

typeConvert

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

​ 实现 ITypeConvert 接口自定义数据库 字段类型 转换为自己需要的 java 类型&#xff0c;内置转换类型无法满足可实现 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 &#61; new AutoGenerator();//1、全局配置GlobalConfig gc &#61; new GlobalConfig();String projectPath &#61; System.getProperty("user.dir");gc.setOutputDir(projectPath &#43; "/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 代替&#xff0c;SQL_PACK 使用 java.sql 包下的&#xff0c;TIME_PACK 使用 java.time 包下的 java8 新的时间类型gc.setDateType(DateType.TIME_PACK);//数据库时间类型 到 实体类时间类型 对应策略gc.setSwagger2(true);//开启swagger2模式mpg.setGlobalConfig(gc);//2、数据源配置DataSourceConfig dsc &#61; new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSl&#61;false&useUnicode&#61;true&characterEncoding&#61;utf-8&serverTimezone&#61;UTC");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("123456");dsc.setDbType(DbType.MYSQL);//数据库类型mpg.setDataSource(dsc);//3、包的配置PackageConfig pc &#61; new PackageConfig();pc.setModuleName("blog");//父包模块名pc.setParent("com.cheng");//父包名,如果为空&#xff0c;将下面子包名必须写全部&#xff0c; 否则就只需写子包名pc.setEntity("pojo");pc.setMapper("mapper");pc.setService("service");pc.setController("controller");mpg.setPackageInfo(pc);//4、策略配置StrategyConfig sy &#61; new StrategyConfig();sy.setInclude("user");//设置要映射的表&#xff0c;可以设置多张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中请求映射的连字符样式&#xff0c;如&#xff1a;localhost:8080/hello_id_1//设置自动填充TableFill create_time &#61; new TableFill("create_time", FieldFill.INSERT);TableFill update_time &#61; new TableFill("update_time", FieldFill.INSERT_UPDATE);ArrayList<TableFill> tableFills &#61; new ArrayList<>();tableFills.add(create_time);tableFills.add(update_time);mpg.setStrategy(sy);//执行代码生成器mpg.execute();}
}

执行代码生成器&#xff0c;查看项目结构的变化

在这里插入图片描述

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


推荐阅读
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • Docker 环境下 MySQL 双主同步配置指南
    本文介绍了如何在 Docker 环境中配置 MySQL 的双主同步,包括目录结构的创建、配置文件的编写、容器的创建与设置以及最终的验证步骤。 ... [详细]
  • MySQL Server 8.0.28 升级至 8.0.30 的详细步骤
    为了修复安全漏洞,本文档提供了从 MySQL Server 8.0.28 升级到 8.0.30 的详细步骤,包括备份数据库、停止和删除旧服务、安装新版本以及配置相关环境变量。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本视频教程将带你快速了解 Android 开发的基础知识,并详细讲解如何在 Android 应用中使用 SQLite 数据库进行数据存储和管理。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
author-avatar
周周周周芮多
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有