3.3.2
代码生成器,又被叫做逆向工程,MyBatis官方为了推广,自己也写了一个,我之前也使用这个,功能也是非常强大,强大以为支持自定义配置,那么问题来了,我该怎么配置才合理呢,所以,有人把所有的配置项都弄成中文的,还有人开发了生成插件,这些在我以往的博文中都看看到。MyBatis-Plus的代码生成器到底怎么样,这我就不评判了,我就这样说,用用看吧。
功能列表:
-
自动生成model类
-
自动生成dao接口
-
自动生成xml文件
-
自动生成service接口
-
自动生成service实现类
-
model支持Builder模式
-
支持swagger2
-
支持生成数据库字段常量
-
支持生成Kotlin代码
-
……more……
.
├── README.md
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── fengwenyi
│ └── code_generator
│ ├── Config.java // 自定义配置
│ ├── MySQL8CodeGenerator.java // MySQL代码生成器
│ ├── OracleCodeGenerator.java // Oracle代码生成器
│ └── util
│ └── CommonUtils.java
└── test
└── java
└── com
└── fengwenyi
└── code_generator
└── CodeGeneratorTests // 代码生成器测试
-
MySQL
-
Oracle
你只需要三步,就能生成代码
git clone [email protected]:fengwenyi/mybatis-plus-code-generator.git
MySQL
:MySQL8CodeGenerator
Oracle
:OracleCodeGenerator
String dbUrl = "jdbc:mysql://localhost:3306/dbName";
String username = "dbUsername";
String password = "dbPassword";
String driver = "com.mysql.cj.jdbc.Driver";
// 表前缀,生成的实体类,不含前缀
String [] tablePrefixes = {};
// 表名,为空,生成所有的表
String [] tableNames = {};
// 字段前缀
String [] fieldPrefixes = {};
// 基础包名
String packageName = "com.example.module.db";
package com.fengwenyi.code_generator;
/**
* @author Erwin Feng
* @since 2019-04-17 12:04
*/
public class Config {
/** 包名:controller */
public static final String PACKAGE_NAME_CONTROLLER = "controller";
/** 包名:service */
public static final String PACKAGE_NAME_SERVICE = "service";
/** 包名:service.impl */
public static final String PACKAGE_NAME_SERVICE_IMPL = "service.impl";
/** 包名:model */
public static final String PACKAGE_NAME_MODEL = "model";
/** 包名:dao */
public static final String PACKAGE_NAME_DAO = "dao";
/** 包名:xml */
public static final String PACKAGE_NAME_XML = "mapper";
/** 文件名后缀:Model */
public static final String FILE_NAME_MODEL = "%sModel";
/** 文件名后缀:Dao */
public static final String FILE_NAME_DAO = "%sDao";
/** 文件名后缀:Mapper */
public static final String FILE_NAME_XML = "%sMapper";
/** MP开头,Service结尾 */
public static final String FILE_NAME_SERVICE = "MP%sService";
/** 文件名后缀:ServiceImpl */
public static final String FILE_NAME_SERVICE_IMPL = "%sServiceImpl";
/** 文件名后缀:Controller */
public static final String FILE_NAME_CONTROLLER = "%sController";
/** 作者 */
public static final String AUTHOR = "Erwin Feng";
/** 生成文件的输出目录 */
public static String projectPath = System.getProperty("user.dir");
/** 输出目录 */
// public static final String outputDir = projectPath + "/src/main/java";
public static final String outputDir = "/Users/code-generator";
}
1、关于指定生成的表名
// 表名,为空,生成所有的表
String [] tableNames = {};
// 表名,具体表名
String [] tableNames = {"table"};
// 表名,多张表
String [] tableNames = {"table1", "table1"};
// 注意:生成多张表时,不能写成
String [] tableNames = {""};
2、包名
// 基础包名
// 这是基础包名,会在后面加dao/model/service等包名
String packageName = "com.example.module.db";
3、数据库操作服务接口默认以 MP
为前缀,如:MPUserService
4、报错 Error java: 错误;不支持发行版5
解决办法:
将 Java Compiler
下 module
对应的 java
版本改成 8+