jOOQ代码生成器

时间:2017-06-30 03:48:50

标签: java mysql jooq

我使用jOOQ程序代码生成数据库,但现在我遇到了一些问题。在数据库中,我有表A和B.第一次都生成了pojo,dao,interface等。经过一段时间的一些开发,我发现表A需要添加一些字段或修改一些字段,所以我必须再次编码,然后jOOQ代码生成器将覆盖现有的代码,这使我非常伤心。当我使用"排除A"排除A表后,发现只生成表A的数据,并删除表B.我不知道如何处理这个问题。我的代码生成器如下:

public class JooqCodegen {

    public static void main(String[] args) throws Exception {
        Configuration configuration = new Configuration()
                .withJdbc(new Jdbc()
                    .withDriver("com.mysql.jdbc.Driver")
                    .withUrl("jdbc:mysql://localhost:3306/microedudb")
                    .withUser("root")
                    .withPassword("root")
                )
                .withGenerator(
                        new Generator()
                        .withName("org.jooq.util.JavaGenerator")
                        .withGenerate(new Generate()
                            .withPojos(true)
                            .withImmutablePojos(true)
                            .withInterfaces(true)
                            .withDaos(true)
                            .withSpringAnnotations(true)
                            .withJavaTimeTypes(true)
                        )
                        .withDatabase(new Database()
                                .withName("org.jooq.util.mysql.MySQLDatabase")
                                //.withIncludes(".*")
                                .withExcludes("A")
                                .withDateAsTimestamp(true)
                                .withInputSchema("microedudb")
                        )
                        .withTarget(new Target()
                                .withPackageName("com.chunfytseng.microedu.jooq")
                                .withDirectory("src/main/java")
                        )
                        );
            GenerationTool.generate(configuration);
    }

}

1 个答案:

答案 0 :(得分:1)

jOOQ代码生成器始终在生成代码时生成数据库模式的快照。这意味着从生成输出中删除任何未生成的表(例如,由于DEPRECATION: --allow-external has been deprecated and will be removed in the future. Due to changes in the repository protocol, it no longer has any effect. DEPRECATION: --allow-unverified has been deprecated and will be removed in the future. Due to changes in the repository protocol, it no longer has any effect. Collecting PIL Could not find a version that satisfies the requirement PIL (from versions: ) No matching distribution found for PIL 配置)。这很重要,因为你也可以放弃桌子,这会产生同样的效果。

  

所以我必须再次编码,然后jOOQ代码生成器将覆盖现有代码

您绝不应手动修改生成的代码。相反,每次在数据库中添加/删除列时,都应该重新生成整个模式。