MyBatisPlus代码生成器的使用示例
目录
- 导入依赖
- 表结构
- 当前项目结构
- 配置代码生成器
- 1、globalConfig 全局策略配置
- 2、dataSourceConfig 数据源配置
导入依赖
com.baomidou mybatis-plus-boot-starter3.0.5 org.apache.velocity velocity-engine-core2.0 io.swagger swagger-annotations1.5.19
更详细的代码生成器配置请查看官方文档:https://baomidou.com/pages/061573/#superentityclass
表结构
文章图片
当前项目结构
文章图片
配置代码生成器
1、globalConfig 全局策略配置
outputDir
- 生成文件的输出目录
- 默认值:
D 盘根目录
- 是否覆盖已有文件
- 默认值:
false
- 是否打开输出目录
- 默认值:
true
- 是否在 xml 中添加二级缓存配置
- 默认值:
false
- 默认值:
null
- 开启 Kotlin 模式
- 默认值:
false
- 开启 swagger2 模式
- 默认值:
false
- 开启 ActiveRecord 模式
- 默认值:
false
- 开启 BaseResultMap
- 默认值:
false
- 开启 baseColumnList
- 默认值:
false
- 时间类型对应策略
- 默认值:
TIME_PACK
- 实体命名方式
- 默认值:
null
例如:%sEntity
生成UserEntity
- mapper 命名方式
- 默认值:
null
例如:%sDao
生成UserDao
- Mapper xml 命名方式
- 默认值:
null
例如:%sDao
生成UserDao.xml
- service 命名方式
- 默认值:
null
例如:%sBusiness
生成UserBusiness
- service impl 命名方式
- 默认值:
null
例如:%sBusinessImpl
生成UserBusinessImpl
- controller 命名方式
- 默认值:
null
例如:%sAction
生成UserAction
- 指定生成的主键的 ID 类型
- 默认值:
null
2、dataSourceConfig 数据源配置
dbQuery
- 数据库信息查询类
- 默认由
dbType
类型决定选择对应数据库内置实现
IDbQuery
接口自定义数据库查询 SQL 语句
定制化返回自己需要的内容dbType
- 数据库类型
- 该类内置了常用的数据库类型【必须】
- 数据库 schema name
- 例如
PostgreSQL
可指定为public
- 类型转换
- 默认由
dbType
类型决定选择对应数据库内置实现
ITypeConvert
接口自定义数据库 字段类型
转换为自己需要的 java
类型,内置转换类型无法满足可实现 IColumnType
接口自定义url
- 驱动连接的 URL
- 驱动名称
- 数据库连接用户名
- 数据库连接密码
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); ArrayListtableFills = new ArrayList<>(); tableFills.add(create_time); tableFills.add(update_time); mpg.setStrategy(sy); //执行代码生成器mpg.execute(); }}
执行代码生成器,查看项目结构的变化
文章图片
代码生成器执行成功,自动生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码。
到此这篇关于MyBatisPlus代码生成器的使用示例的文章就介绍到这了,更多相关MyBatisPlus代码生成器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 阿里云「低代码音视频工厂」正式上线,为企业用户打造音视频应用开发最短路径
- 宇宙最強的IDE - Visual Studio 25岁生日快乐
- 程序人生|远程办公中的IT女性(工作量增加3倍,离职率却下降近50%)
- 求解三角系统-从理论到代码优化
- python编程实现撤销上一步操作_78行Python代码实现现微信撤回消息功能
- python|数字图像处理-Python实现BMP图片(位图)旋转-代码实例
- 最小生成树-克鲁斯卡尔算法(Kruskal算法)
- 宇宙最強的IDE|宇宙最強的IDE - Visual Studio 25岁生日快乐
- Go|Go 笔记 - Beego 之 orm 表结构操作
- 键盘导航