packagecom.suixingpay.jooq.generator;importorg.apache.commons.lang.StringUtils;importorg.jooq.codegen.GenerationTool;importorg.jooq.codegen.JavaGenerator;importorg.jooq.meta.jaxb.Configuration;importorg.jooq.meta.jaxb.Database;importorg.jooq.meta.jaxb.Generate;importorg.jooq.meta.jaxb.Generator;importorg.jooq.meta.jaxb.Jdbc;importorg.jooq.meta.jaxb.Target;public class JOOQGenerator extendsJavaGenerator {private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";private static final String JDBC_URL = "jdbc:mysql://localhost:3306";private static final String JDBC_USERNAME = "root";private static final String JDBC_PASSWORD = "111";private static final String JOOQ_DATABASE_NAME = "org.jooq.meta.jdbc.JDBCDatabase";private static final String GENERATOR_PATH = "test-core/src/main/java";public static void genTables(String schemaName, String packageName, String includes, String excludes) throwsException {
Jdbc jdbc=createJdbc();
Generator generator=createGenerator(schemaName, packageName, includes, excludes);
Configuration configuration= newConfiguration()
.withJdbc(jdbc)
.withGenerator(generator);
GenerationTool.generate(configuration);
}private staticGenerator createGenerator(String schemaName, String packageName, String includes, String excludes) {
Database database=createDatabase(schemaName, includes, excludes);
Target target=createTarget(packageName);
Generate generate=createGenerate();return newGenerator()
.withDatabase(database)
.withTarget(target)
.withGenerate(generate);
}private staticJdbc createJdbc() {return newJdbc()
.withDriver(JDBC_DRIVER)
.withUrl(JDBC_URL)
.withUser(JDBC_USERNAME)
.withPassword(JDBC_PASSWORD);
}private staticTarget createTarget(String packageName) {return newTarget().withDirectory(GENERATOR_PATH).withPackageName(packageName);
}private staticDatabase createDatabase(String schemaName, String includes, String excludes) {
Database database= newDatabase().withName(JOOQ_DATABASE_NAME).withInputSchema(schemaName);if(StringUtils.isNotBlank(includes)) {
database.withIncludes(includes);
}if(StringUtils.isNotBlank(excludes)) {
database.withExcludes(excludes);
}returndatabase;
}private staticGenerate createGenerate() {
Generate generate= newGenerate();
generate.withDaos(false)
.withPojos(true);returngenerate;
}private static void generate() throwsException {
genTables("jooq_test", "com.suixingpay.jooq.entity", ".*", "");
}public static void main(String[] args) throwsException {
generate();
}
}