diff --git a/mybatis-flex-codegen/pom.xml b/mybatis-flex-codegen/pom.xml
index e35f7b15..91e5df15 100644
--- a/mybatis-flex-codegen/pom.xml
+++ b/mybatis-flex-codegen/pom.xml
@@ -57,6 +57,14 @@
+
+ org.projectlombok
+ lombok
+ 1.18.26
+ provided
+
+
+
junit
junit
diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/Generator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/Generator.java
index cc848a78..c0223190 100644
--- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/Generator.java
+++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/Generator.java
@@ -102,6 +102,7 @@ public class Generator {
private void buildTableColumns(Table table) throws SQLException {
+
Map columnRemarks = buildColumnRemarks(table);
String sql = dialect.forBuildColumns(table.getName());
diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java
index 23bbf608..8dcd2f46 100644
--- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java
+++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java
@@ -33,7 +33,7 @@ public class GlobalConfig {
private String entityPackage;
//entity 是否使用 Lombok
- private Boolean entityWithLombok = false;
+ private boolean entityWithLombok = false;
//是否生成 mapper 类
private boolean mapperGenerateEnable = false;
@@ -41,7 +41,7 @@ public class GlobalConfig {
//mapper 的包名
private String mapperPackage;
- //数据库表前缀
+ //数据库表前缀,多个前缀用英文逗号(,) 隔开
private String tablePrefix;
//逻辑删除的默认字段名称
@@ -91,11 +91,11 @@ public class GlobalConfig {
this.entityPackage = entityPackage.trim();
}
- public Boolean getEntityWithLombok() {
+ public boolean isEntityWithLombok() {
return entityWithLombok;
}
- public void setEntityWithLombok(Boolean entityWithLombok) {
+ public void setEntityWithLombok(boolean entityWithLombok) {
this.entityWithLombok = entityWithLombok;
}
diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java
index ef5a10f8..9962763a 100644
--- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java
+++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java
@@ -99,6 +99,18 @@ public class Table {
imports.addAll(column.getImportClasses());
}
+ //开启 lombok
+ if (globalConfig.isEntityWithLombok()) {
+ //import lombok.AllArgsConstructor;
+ //import lombok.Builder;
+ //import lombok.Data;
+ //import lombok.NoArgsConstructor;
+ imports.add("lombok.AllArgsConstructor");
+ imports.add("lombok.Builder");
+ imports.add("lombok.Data");
+ imports.add("lombok.NoArgsConstructor");
+ }
+
if (tableConfig != null) {
if (tableConfig.getInsertListenerClass() != null) {
imports.add(tableConfig.getInsertListenerClass().getName());
@@ -120,8 +132,15 @@ public class Table {
public String buildEntityClassName() {
String entityJavaFileName = name;
String tablePrefix = globalConfig.getTablePrefix();
- if (tablePrefix != null && name.startsWith(tablePrefix)) {
- entityJavaFileName = name.substring(tablePrefix.length());
+ if (tablePrefix != null) {
+ String[] tablePrefixes = tablePrefix.split(",");
+ for (String prefix : tablePrefixes) {
+ String trimPrefix = prefix.trim();
+ if (trimPrefix.length() > 0 && name.startsWith(trimPrefix)) {
+ entityJavaFileName = name.substring(trimPrefix.length());
+ break;
+ }
+ }
}
return StringUtil.firstCharToUpperCase(StringUtil.underlineToCamel(entityJavaFileName));
}
@@ -130,8 +149,19 @@ public class Table {
* 构建 @Table(...) 注解
*/
public String buildTableAnnotation() {
- StringBuilder tableAnnotation = new StringBuilder("@Table(");
- tableAnnotation.append("value = \"").append(name).append("\"");
+ StringBuilder tableAnnotation = new StringBuilder();
+ if (globalConfig.isEntityWithLombok()) {
+ //@Data
+ //@Builder
+ //@NoArgsConstructor
+ //@AllArgsConstructor
+ tableAnnotation.append("@Data\n");
+ tableAnnotation.append("@Builder\n");
+ tableAnnotation.append("@NoArgsConstructor\n");
+ tableAnnotation.append("@AllArgsConstructor\n");
+ }
+
+ tableAnnotation.append("@Table(value = \"").append(name).append("\"");
if (tableConfig != null) {
if (tableConfig.getSchema() != null) {
diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl
index c0e1c522..b48b96ef 100644
--- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl
+++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl
@@ -13,6 +13,7 @@ public class #(table.buildEntityClassName()) {
#end
+ #if(!globalConfig.isEntityWithLombok())
#for(column: table.columns)
public #(column.propertySimpleType) #(column.buildGetter())() {
return #(column.property);
@@ -23,4 +24,5 @@ public class #(table.buildEntityClassName()) {
}
#end
+ #end
}
diff --git a/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java b/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java
index daa1f9fa..0798ab74 100644
--- a/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java
+++ b/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java
@@ -35,12 +35,14 @@ public class GeneratorTest {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setSourceDir(System.getProperty("user.dir") + "/src/test/java");
+// globalConfig.setTablePrefix("tb_");
+// globalConfig.setEntityWithLombok(true);
//设置只生成哪些表
- globalConfig.addGenerateTable("account", "account_session");
+ globalConfig.addGenerateTable("tb_account", "account_session");
//设置 entity 的包名
- globalConfig.setEntityPackage("com.test.test");
+ globalConfig.setEntityPackage("com.test.entity");
//是否生成 mapper 类,默认为 false
globalConfig.setMapperGenerateEnable(true);