MyBatisPlus代码生成器的使用示例

网友投稿 1175 2022-11-11

MyBatisPlus代码生成器的使用示例

MyBatisPlus代码生成器的使用示例

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

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

导入依赖

com.baomidou

mybatis-plus-boot-starter

3.0.5

org.apache.velocity

velocity-engine-core

2.0

io.swagger

swagger-annotations

1.5.19

更详细的代码生成器配置请查看官方文档: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 chttp://om.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import gCJJWGgjava.util.ArrayList;

public class ChengCode {

pugCJJWGgblic 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.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 tableFills = new ArrayList<>();

tableFills.add(create_time);

tableFills.add(update_time);

mpg.setStrategy(sy);

//执行代码生成器

mpg.execute();

}

}

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小朋友学Python(13):循环
下一篇:SpringBoot热部署
相关文章

 发表评论

暂时没有评论,来抢沙发吧~