mybatisPlus代码生成工具
时间:2020-01-06
本文章向大家介绍mybatisPlus代码生成工具,主要包括mybatisPlus代码生成工具使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先,引入pom文件
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.6</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.1</version> </dependency>
然后,代码生成器如下:
package domain; import com.baomidou.mybatisplus.annotation.DbType; 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.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine; /** * 生成代码工具 */ public class Generate { public static void main(String[] args) { Generate g = new Generate(); boolean startWithI = true; String projectName = "Demo"; String packageName = "com.xp.boot.web"; String tableName = "test_log"; g.generateByTables(startWithI,projectName,packageName,tableName); } /** * 根据表自动生成 * * @param serviceNameStartWithI 默认为false * @param packageName 包名 * @param tableNames 表名 */ private void generateByTables(boolean serviceNameStartWithI,String projectName, String packageName, String... tableNames) { //配置数据源 DataSourceConfig dataSourceConfig = getDataSourceConfig(); // 策略配置 StrategyConfig strategyConfig = getStrategyConfig(tableNames); //全局变量配置 GlobalConfig globalConfig = getGlobalConfig(serviceNameStartWithI,projectName); //包名配置 PackageConfig packageConfig = getPackageConfig(packageName); //自动生成 atuoGenerator(dataSourceConfig, strategyConfig, globalConfig, packageConfig); } /** * 集成 * * @param dataSourceConfig 配置数据源 * @param strategyConfig 策略配置 * @param config 全局变量配置 * @param packageConfig 包名配置 */ private void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig config, PackageConfig packageConfig) { new AutoGenerator() .setGlobalConfig(config) .setDataSource(dataSourceConfig) .setStrategy(strategyConfig) .setPackageInfo(packageConfig) .setTemplateEngine(new VelocityTemplateEngine()) .execute(); } /** * 设置包名 * * @param packageName 父路径包名 * @return PackageConfig 包名配置 */ private PackageConfig getPackageConfig(String packageName) { return new PackageConfig() .setParent(packageName) .setXml("mapper") .setMapper("mapper") .setController("controller") .setService("service") .setEntity("entity"); } /** * 全局配置 * * @param serviceNameStartWithI false * @return GlobalConfig */ private GlobalConfig getGlobalConfig(boolean serviceNameStartWithI,String projectName) { GlobalConfig globalConfig = new GlobalConfig(); globalConfig .setBaseColumnList(true) .setBaseResultMap(true) .setActiveRecord(false) .setAuthor("尼古拉斯-肖") //设置输出路径 .setOutputDir(System.getProperty("user.dir")+"/"+projectName+"/src/main/java/") .setFileOverride(true); if (!serviceNameStartWithI) { //设置service名 globalConfig.setServiceName("%sService"); } return globalConfig; } /** * 策略配置 * * @param tableNames 表名 * @return StrategyConfig */ private StrategyConfig getStrategyConfig(String... tableNames) { return new StrategyConfig() // 全局大写命名 ORACLE 注意 .setCapitalMode(true) .setEntityLombokModel(true) .setRestControllerStyle(false) //从数据库表到文件的命名策略 .setNaming(NamingStrategy.underline_to_camel) .setColumnNaming(NamingStrategy.underline_to_camel) //需要生成的的表名,多个表名传数组 .setInclude(tableNames); } /** * 配置数据源 * * @return 数据源配置 DataSourceConfig */ private DataSourceConfig getDataSourceConfig() { return new DataSourceConfig().setDbType(DbType.MYSQL) .setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=Hongkong&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&useSSL=false") .setUsername("root") .setPassword("123456") .setDriverName("com.mysql.cj.jdbc.Driver"); } }
配置好数据库,以及表名、包名等参数后,main方法运行:
原文地址:https://www.cnblogs.com/jack-jin/p/12156287.html
- Windows Live Writer插入代码vs2010插件
- 分布式队列编程优化篇
- 基于机器学习方法的POI品类推荐算法
- 【Scikit-Learn 中文文档】多类和多标签算法 - 监督学习 - 用户指南 | ApacheCN
- 【Scikit-Learn 中文文档】新异类和异常值检测 - 无监督学习 - 用户指南 | ApacheCN
- Golang中使用echo框架、MongoDB、JWT搭建REST API
- 在对象的原型上添加方法?
- KMeans聚类算法思想与可视化
- 控制台断点调试
- 函数声明与表达式的区别
- 揭开身份证验证的神秘面纱
- return语句的用法
- JavaScript基础讲解 - 函数与参数
- Go实战--golang中使用RethinkDB(gorethink/gorethink.v3)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Java初始化List的6种方式
- Java遍历Map对象的四种方式
- 【SpringBoot源码解析】第三章:SpringBoot通过打成war包的方式是如何启动的
- 让你编码嗨到停不下来的8个VSCode插件
- 【SpringBoot源码解析】第四章:SpringBoot是如何自动装配SpringMvc的
- 【SpringBoot源码解析】第二章:SpringBoot是如何通过内置Tomcat启动的
- 技术译文 | How Can ScaleFlux Handle MySQL Workload?
- 技术译文 | MySQL 8 需要多大的 innodb_buffer_pool_instances 值(上)
- 前端登录,这一篇就够了
- 技术译文 | MySQL 8 需要多大的 innodb_buffer_pool_instances 值(下)
- 创建线程到底有多少种方式?
- CANet|拼接注意力网络
- SQL 中判断条件的先后顺序,会引起索引失效么?
- 一个超酷的开源uHand2.0机械手掌项目
- 神经网络低比特量化——TQT