JOOQ框架学习(1):逆向编译生成代码

2018年10月14日

目录

一、前言

二、模仿网上的文章来搭建JOOQ Demo

步骤1:配置XML文件

步骤2:手敲执行指令

三、对于盲目照抄导致报错的不断填坑

坑NO1:class not found.

坑NO.2:java.lang.ClassNotFoundException: org.jooq.util.DefaultGenerator

坑NO.3:java.lang.ClassNotFoundException: org.jooq.util.mysql.MySQLDatabase

四、最终运行JOOQ逆向生成


一、前言

网上的很多文章(好文:https://segmentfault.com/a/1190000010415384都对JOOQ这个框架做了详细的讲解,百闻不如一见,我也自己动手尝试使用了一下,但是发现实操起来坑洼特别多,但最后还是成功了,因此做个总结,帮助各位避开更多的问题。

 

二、模仿网上的文章来搭建JOOQ Demo

官方网站:http://www.jooq.org/doc/3.11/manual-single-page/

Windows环境下,JOOQ搭建demo最简单的手段:

1、新建一个备用文件夹(“D:\temp”);

2、下载4个jar包

(jooq-3.11.5.jar / jooq-codegen-3.11.5.jar / jooq-meta-3.11.5.jar /  mysql-connector-java-5.1.18.jar);

3、新建一个xml文件(“library.xml”);

步骤1:配置XML文件

下面配置内容依次讲解:

1)Mysql jdbc 配置:数据库驱动、本地ip+端口+数据库、用户名+密码

2)生成器配置:

2.1 默认生成器;

2.2 指定数据库;

2.3 指定数据库的表为全部(.*);

2.4 目标:项目文件路径  + package路径;



  
  
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/guestbook
    root
    qweasd!@#zxc123
  

  
    
	
    org.jooq.util.DefaultGenerator

    
      
      org.jooq.util.mysql.MySQLDatabase

      
      guestbook

      
      .*

      
      
    

    
      
      mmbTest.jooq

      
      E:/zuolin/workspace/jooqDemo/jooq/src/main/java
    
  
  

 

步骤2:手敲执行指令

根据网上的博文,只要手敲下面的指令即可完美收工:

java -classpath jooq-3.11.5.jar;jooq-meta-3.11.5.jar;jooq-codegen-3.11.5.jar;mysql-connector-java-5.1.18.jar;.  org.jooq.util.GenerationTool library.xml

可能我这边环境比较特殊,真实情况是这样的:

 

 

三、对于盲目照抄导致报错的不断填坑

坑NO1:class not found.

org.jooq.util.GenerationTool找不到该类??怎么可能呢,,难道要我手写一个??心一横,去看看jar包的class吧。

1)在jar包(jooq-codegen-3.11.5.jar)发现: org.jooq.codegen.GenerationTool;难道网上的文章有错,参数“org.jooq.util.GenerationTool”要改为“ org.jooq.codegen.GenerationTool”?

2)ok,换个参数试试,因为找光所有的jar包,都不存在:“org.jooq.util.GenerationTool”。

3)输入指令:

java -cp jooq-codegen-3.11.5.jar;jooq-3.11.5.jar;jooq-meta-3.11.5.jar;mysql-connector-java-5.1.18.jar;. org.jooq.codegen.GenerationTool library.xml

结果报错消失,填坑1完成(估计网上资料用的是比较旧的版本,所以某些class被移除掉了),但还是有错误提示:

JOOQ框架学习(1):逆向编译生成代码_第1张图片

 

坑NO.2:java.lang.ClassNotFoundException: org.jooq.util.DefaultGenerator

从上图可以知道,问题是我的 library.xml 文件配置出了问题,原因是 “org.jooq.util.DefaultGenerator” 这个 class 找不到了。

先去官方提供的xml文件模板瞄一下:

JOOQ框架学习(1):逆向编译生成代码_第2张图片

ok,注释掉它并修改为“JavaGenerator”;

问题解决,填坑2完成,但还是有报错:

JOOQ框架学习(1):逆向编译生成代码_第3张图片

坑NO.3:java.lang.ClassNotFoundException: org.jooq.util.mysql.MySQLDatabase

xml的 org.jooq.util.mysql.MySQLDatabase 找不到??去官网的模板瞄一下:

JOOQ框架学习(1):逆向编译生成代码_第4张图片

ok,注释掉它并修改为“org.jooq.meta.mysql.MySQLDatabase”;

最后一个坑填完!结束。

 

四、最终运行JOOQ逆向生成

最后执行指令:

java -cp jooq-3.11.5.jar;jooq-meta-3.11.5.jar;jooq-codegen-3.11.5.jar;mysql-connector-java-5.1.18.jar;. org.jooq.codegen.GenerationTool library.xml

无报错:

JOOQ框架学习(1):逆向编译生成代码_第5张图片

项目结构:

JOOQ框架学习(1):逆向编译生成代码_第6张图片

 

总结:纸上得来终觉浅,绝知此事要躬行。

 

你可能感兴趣的:(Jooq(学习))