Skip to content

Commit 0bea375

Browse files
committed
update
1 parent f38b1db commit 0bea375

File tree

2 files changed

+89
-11
lines changed

2 files changed

+89
-11
lines changed

pom.xml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.revengemission.plugins</groupId>
66
<artifactId>mybatis-plugins</artifactId>
7-
<version>2.1.2</version>
7+
<version>2.1.3</version>
88
<packaging>jar</packaging>
99
<name>${project.artifactId}</name>
1010
<description>MyBatis Generator plugins</description>
@@ -15,7 +15,7 @@
1515
<maven.compiler.target>17</maven.compiler.target>
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1717
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
18-
<HikariCP.version>6.3.0</HikariCP.version>
18+
<HikariCP.version>7.0.2</HikariCP.version>
1919
</properties>
2020

2121
<dependencies>
@@ -30,14 +30,14 @@
3030
<dependency>
3131
<groupId>org.slf4j</groupId>
3232
<artifactId>slf4j-api</artifactId>
33-
<version>2.0.16</version>
33+
<version>2.0.17</version>
3434
<scope>provided</scope>
3535
</dependency>
3636

3737
<dependency>
3838
<groupId>com.fasterxml.jackson.core</groupId>
3939
<artifactId>jackson-databind</artifactId>
40-
<version>2.18.2</version>
40+
<version>2.20.0</version>
4141
<scope>provided</scope>
4242
</dependency>
4343

@@ -50,13 +50,13 @@
5050
<dependency>
5151
<groupId>org.postgresql</groupId>
5252
<artifactId>postgresql</artifactId>
53-
<version>42.7.7</version>
53+
<version>42.7.8</version>
5454
<scope>test</scope>
5555
</dependency>
5656
<dependency>
5757
<groupId>com.mysql</groupId>
5858
<artifactId>mysql-connector-j</artifactId>
59-
<version>9.3.0</version>
59+
<version>9.4.0</version>
6060
<scope>test</scope>
6161
</dependency>
6262
<dependency>
@@ -72,7 +72,7 @@
7272
<plugin>
7373
<groupId>org.apache.maven.plugins</groupId>
7474
<artifactId>maven-compiler-plugin</artifactId>
75-
<version>3.8.1</version>
75+
<version>3.14.1</version>
7676
<configuration>
7777
<source>${java.version}</source>
7878
<target>${java.version}</target>
@@ -85,7 +85,7 @@
8585
<plugin>
8686
<groupId>org.codehaus.mojo</groupId>
8787
<artifactId>versions-maven-plugin</artifactId>
88-
<version>2.12.0</version>
88+
<version>2.16.2</version>
8989
<configuration>
9090
<rulesUri>file:///${project.basedir}/maven-version-rules.xml</rulesUri>
9191
</configuration>
@@ -137,7 +137,7 @@
137137
<plugin>
138138
<groupId>org.apache.maven.plugins</groupId>
139139
<artifactId>maven-javadoc-plugin</artifactId>
140-
<version>3.3.0</version>
140+
<version>3.12.0</version>
141141
<configuration>
142142
<charset>${project.build.sourceEncoding}</charset>
143143
<encoding>${project.build.sourceEncoding}</encoding>
@@ -165,7 +165,7 @@
165165
<plugin>
166166
<groupId>org.apache.maven.plugins</groupId>
167167
<artifactId>maven-javadoc-plugin</artifactId>
168-
<version>3.8.0</version>
168+
<version>3.12.0</version>
169169
<executions>
170170
<execution>
171171
<id>attach-javadocs</id>
@@ -200,7 +200,7 @@
200200
<plugin>
201201
<groupId>org.apache.maven.plugins</groupId>
202202
<artifactId>maven-gpg-plugin</artifactId>
203-
<version>3.2.5</version>
203+
<version>3.2.8</version>
204204
<executions>
205205
<execution>
206206
<id>sign-artifacts</id>
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package com.revengemission.plugins.mybatis;
2+
3+
import org.mybatis.generator.api.GeneratedJavaFile;
4+
import org.mybatis.generator.api.JavaFormatter;
5+
import org.mybatis.generator.api.dom.DefaultJavaFormatter;
6+
import org.mybatis.generator.api.dom.java.Field;
7+
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
8+
import org.mybatis.generator.api.dom.java.JavaVisibility;
9+
import org.mybatis.generator.api.dom.java.TopLevelClass;
10+
import org.slf4j.Logger;
11+
import org.slf4j.LoggerFactory;
12+
13+
import java.sql.Connection;
14+
import java.sql.DatabaseMetaData;
15+
import java.sql.ResultSet;
16+
import java.sql.SQLException;
17+
import java.util.Collections;
18+
import java.util.List;
19+
20+
public class TableConstantsPlugin extends AbstractXmbgPlugin {
21+
22+
private static final Logger log = LoggerFactory.getLogger(TableConstantsPlugin.class);
23+
24+
private String tableNamePattern = "%%";
25+
private String codePackageName = "tables";
26+
27+
@Override
28+
public boolean validate(List<String> warnings) {
29+
return true;
30+
}
31+
32+
@Override
33+
public List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles() {
34+
properties.forEach((k, v) -> {
35+
if (k != null && k.equals("tableNamePattern")) {
36+
tableNamePattern = v.toString();
37+
} else if (k != null && k.equals("codePackageName")) {
38+
codePackageName = v.toString();
39+
}
40+
});
41+
42+
log.info("enter contextGenerateAdditionalJavaFiles()");
43+
String tableConstants = "TableConstants";
44+
FullyQualifiedJavaType className = new FullyQualifiedJavaType(codePackageName + "." + tableConstants);
45+
//TopLevelEnumeration enumClass = new TopLevelEnumeration(className);
46+
TopLevelClass topLevelClass = new TopLevelClass(className);
47+
topLevelClass.setVisibility(JavaVisibility.PUBLIC);
48+
49+
50+
try (Connection connection = context.getConnection()) {
51+
DatabaseMetaData metaData = connection.getMetaData();
52+
ResultSet resultSet = metaData.getTables(null, "public", tableNamePattern, new String[]{"TABLE"});
53+
while (resultSet.next()) {
54+
String tableName = resultSet.getString("TABLE_NAME");
55+
String tableRemarks = resultSet.getString("REMARKS");
56+
if (null == tableRemarks || tableRemarks.trim().isEmpty()) {
57+
tableRemarks = tableName;
58+
}
59+
Field field = new Field(tableName.toUpperCase(), FullyQualifiedJavaType.getStringInstance());
60+
field.setVisibility(JavaVisibility.PUBLIC);
61+
field.setStatic(true);
62+
field.setFinal(true);
63+
field.setInitializationString("\"" + tableRemarks + "\"");
64+
topLevelClass.addField(field);
65+
}
66+
JavaFormatter javaFormatter = new DefaultJavaFormatter();
67+
GeneratedJavaFile generatedJavaFile = new GeneratedJavaFile(
68+
topLevelClass,
69+
"src/main/java",
70+
javaFormatter
71+
);
72+
return Collections.singletonList(generatedJavaFile);
73+
} catch (SQLException e) {
74+
log.error("SqlException in my plugin", e);
75+
return List.of();
76+
}
77+
}
78+
}

0 commit comments

Comments
 (0)