# 快速开始
# 1. 引入依赖
- 最高版本: (opens new window)
# 1. 此处以 maven
项目为例:首先引入 maven
依赖:
<dependency>
<groupId>com.github.zhuyizhuo</groupId>
<artifactId>code-generator</artifactId>
<version>最高版本</version>
</dependency>
# 2. 其次引入对应数据库驱动,以 mysql
数据库为例:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>x.x.x</version>
</dependency>
# 2. 配置文件方式
# 第一步:新增配置文件
在 src/main/resources
目录下新建配置文件,如 config.properties
,添加以下配置信息:
########## 必选配置 start ###########
# 数据库配置 可选值 MYSQL ORACLE, 以 MYSQL 为例
db.type=MYSQL
# 驱动包路径
db.driver=com.mysql.cj.jdbc.Driver
# 数据库链接 需改为你的数据库链接
db.url=jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai
# 表空间 如 sql 为 select * from github.demo; 则 github 为表空间
db.table-schema=test
# 数据库用户名
db.username=你的数据库用户名
# 数据库密码
db.password=你的数据库密码
########## 必选配置 end ###########
# 指定生成的表 多张表用英文逗号隔开,大小写不敏感,不配置则默认为 db.table-schema 下的全部表
generate.table-names=table1,table2
# java 类生成的公共包路径 示例:
generate.base.package=com.github
# 作者 默认 @author : TODO
generate.java.comment.author=TODO
# 第二步:代码生成
创建 Java
类,执行 main
方法,即可生成代码。
/**
* 生成器使用
*/
public class TestGenerator {
public static void main(String[] args) throws Exception {
/**
* 此处使用 配置文件的绝对路径或者在项目中的相对路径,
* 传参如下,则默认在项目的 src/main/resources 文件夹下查找加载 config.properties
*/
Generator generator = new GeneratorBuilder().build("config.properties");
generator.generate();
}
}
# 3. 无需配置文件方式
# 第一种方式
创建 SimpleJavaGenerator 类如下:
public class SimpleJavaGeneratorDemo {
public static void main(String[] args) {
/** [必选]数据库配置 可选值参考 DbTypeEnums */
DbTypeEnums type= DbTypeEnums.MYSQL;
/** [必选]驱动包路径 */
String driver= "com.mysql.cj.jdbc.Driver";
/** [必选]数据库链接 需改为你的数据库链接 */
String url= "jdbc:mysql://localhost:3306/management?useUnicode=true&serverTimezone=Asia/Shanghai";
/** [必选]表空间 如 sql 为 select * from management.demo; 则 management 为表空间 */
String tableSchema= "你的数据库表空间";
/** [必选]数据库用户名 */
String username= "你的数据库用户名";
/** [必选]数据库密码 */
String password= "你的数据库密码";
/** [建议]要生成的表名 多个可用英文逗号隔开; 缺省为当前表空间下所有表; mysql 数据库表名大小写敏感 */
String tableName = "你要生成的表名";
/** [建议]生成类所在的基础包路径 */
String basePackage = "com.generator";
/** [建议]生成的代码注释 作者 缺省值为 TODO */
String author = "作者";
/** [可选]可设置基础生成路径,默认生成至系统变量 user.dir 路径下,可修改为指定路径 */
String outPath = System.getProperty("user.dir") + "/generator";
Generator generator = new GeneratorBuilder()
.properties("db.type=" + type.name())
.properties("db.driver=" + driver)
.properties("db.url=" + url)
.properties("db.table-schema=" + tableSchema)
.properties("db.username=" + username)
.properties("db.password=" + password)
.properties("generate.table-names=" + tableName)
.properties("generate.base.package=" + basePackage)
.properties("generate.java.comment.author=" + author)
.properties("generate.base.out-put-path=" + outPath)
.build();
generator.generate();
}
}
# 第二种方式
public class SimpleJavaGenerator {
public static void main(String[] args) {
/** [必选]数据库配置 可选值参考 DbTypeEnums */
DbTypeEnums type= DbTypeEnums.MYSQL;
/** [必选]驱动包路径 */
String driver= "com.mysql.cj.jdbc.Driver";
/** [必选]数据库链接 需改为你的数据库链接 */
String url= "jdbc:mysql://localhost:3306/management?useUnicode=true&serverTimezone=Asia/Shanghai";
/** [必选]表空间 如 sql 为 select * from management.demo; 则 management 为表空间 */
String tableSchema= "你的数据库表空间";
/** [必选]数据库用户名 */
String username= "你的数据库用户名";
/** [必选]数据库密码 */
String password= "你的数据库密码";
/** [建议]要生成的表名 多个可用英文逗号隔开; 缺省为当前表空间下所有表; mysql 数据库表名大小写敏感 */
String tableName = "你要生成的表名";
/** [建议]生成类所在的基础包路径 */
String basePackage = "com.generator";
/** [建议]生成的代码注释 作者 缺省值为 TODO */
String author = "作者";
/** [可选]可设置基础生成路径,默认生成至系统变量 user.dir 路径下,可修改为指定路径 */
String outPath = System.getProperty("user.dir") + "/generator";
Map<String, String> properties = new HashMap<>();
properties.put("db.type", type.name());
properties.put("db.driver", driver);
properties.put("db.url", url);
properties.put("db.table-schema", tableSchema);
properties.put("db.username", username);
properties.put("db.password", password);
properties.put("generate.table-names", tableName);
properties.put("generate.base.package", basePackage);
properties.put("generate.java.comment.author", author);
properties.put("generate.base.out-put-path", outPath);
Generator generator = new GeneratorBuilder()
.properties(properties)
.build();
generator.generate();
}
}
# 最佳实践
将不常修改的信息放在配置文件,经常变更的信息使用 Java 配置。
# 配置文件,以 mysql 为例
## 数据库信息 必须配置
db.type=MYSQL
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai
db.table-schema=test
db.username=你的数据库用户名
db.password=你的数据库密码
# java 类生成的公共包路径
generate.base.package=com.github
# 作者
generate.java.comment.author=Mr.Li
# 代码
public class SimpleGenerator {
public static void main(String[] args) {
/** [建议]要生成的表名 多个可用英文逗号隔开; 缺省为当前表空间下所有表; mysql 数据库表名大小写敏感 */
String tableName = "你要生成的表名";
/** [可选]可设置基础生成路径,默认生成至系统变量 user.dir 路径下,可修改为指定路径 */
String outPath = System.getProperty("user.dir") + "/generator";
Generator generator = new GeneratorBuilder()
.properties("generate.table-names=" + tableName)
.properties("generate.base.out-put-path=" + outPath)
.build("config.properties");
generator.generate();
}
}