Jooq根据数据库表自动生成代码教程及配置

纯手打,转载请附上本文网址!!!

实习,框架用的SpringBoot + Jooq,什么Jooq是什么?其实我也不知道,后来看了一下官网的文档和网上的资料,发现这个Jooq确实挺有意思的,尤其是在程序的语句这块,可以参考我的另一篇博客:http://blog.csdn.net/xianzhixianzhixian/article/details/78894256

但是我要的功能是根据数据库的内容生成pojo的代码呀,这可把我难坏了,但是功夫不负有心人还是做出来了;废话不多直接上教程,附上github源码示例地址:https://github.com/xianzhixianzhixian/jooq-maven.git


至于不会用git命令的看这篇http://blog.csdn.net/xianzhixianzhixian/article/details/78789867


工程结构如图,com.yufeng.strategy是自定义生成的策略的地方,me.ele.atfcapi.tools.db是生成pojo代码的地方:

Jooq根据数据库表自动生成代码教程及配置_第1张图片

首先我们需要配置pom.xml:



    4.0.0

    com.yufeng
    jooq-maven
    1.0-SNAPSHOT

    pom

    
        UTF-8
        UTF-8
        5.1.34
        
        1.0.5-SNAPSHOT
        
        3.7.0
        1.1.0.Final
        1.5.6.RELEASE
    
    
    
        

            
            
                org.springframework.boot
                spring-boot-starter-jooq
                ${spring-boot-version}
            
            
            
            
                org.jooq
                jooq
                ${jooq-version}
            
            
                org.jooq
                jooq-meta
                ${jooq-version}
            
            
                org.jooq
                jooq-codegen
                ${jooq-version}
            
            

            
                mysql
                mysql-connector-java
                ${mysql-jdbc-driver}
            

            
                javax.validation
                validation-api
                ${javax-validation-version}
            
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                
            
            
                org.jooq
                jooq-codegen-maven
                ${jooq-version}
                
                    
                        generate-mysql
                        generate-sources
                        
                            generate
                        
                    
                
                
                    
                    
                        com.mysql.jdbc.Driver
                        
                        jdbc:mysql://127.0.0.1:3306/数据库名
                        
                        root
                        
                        ******
                    
                    
                    
                        org.jooq.util.JavaGenerator
                        
                            com.yufeng.strategy.MyStrategy
                        
                        
                            org.jooq.util.mysql.MySQLDatabase
                            QRTZ_.*|jooq-maven\..*\.is_delete
                            true
                            atfcapi
                        
                        
                            false
                            true
                            true
                            true
                        
                        
                            me.ele.atfcapi.tools.db
                            src/main/java
                        
                    
                
            
        
    

之后再写一个配置文件MyStrategy.java用来指定生成pojo代码的规则:

@Configuration
public class MyStrategy extends DefaultGeneratorStrategy {
    private String tablePrefix = "tb_";

    public String getTablePrefix() {
        return tablePrefix;
    }

    public void setTablePrefix(String tablePrefix) {
        this.tablePrefix = tablePrefix;
    }

    @Override
    public String getJavaClassName(Definition definition, Mode mode) {
        StringBuilder result = new StringBuilder();

        String outputName = definition.getOutputName();
        if (!StringUtils.isBlank(tablePrefix) && outputName.startsWith(tablePrefix)) {
            outputName = outputName.substring(tablePrefix.length());
        }
        result.append(StringUtils.toCamelCase(outputName));

        if (mode == Mode.RECORD) {
            result.append("Record");
        } else if (mode == Mode.DAO) {
            result.append("Dao");
        } else if (mode == Mode.INTERFACE) {
            result.insert(0, "I");
        }
        return result.toString();
    }
}


准备工作已经完成了,接下来生成代码: 这里别用mvn clean install
1、rebuild project,为.java文件生成相应的.class文件

2、在命令行里输入mvn install

代码生成完毕咯~

你可能感兴趣的:(Java)