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这个框架做了详细的讲解,百闻不如一见,我也自己动手尝试使用了一下,但是发现实操起来坑洼特别多,但最后还是成功了,因此做个总结,帮助各位避开更多的问题。
官方网站: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)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
根据网上的博文,只要手敲下面的指令即可完美收工:
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
可能我这边环境比较特殊,真实情况是这样的:
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被移除掉了),但还是有错误提示:
从上图可以知道,问题是我的 library.xml 文件配置出了问题,原因是 “org.jooq.util.DefaultGenerator” 这个 class 找不到了。
先去官方提供的xml文件模板瞄一下:
ok,注释掉它并修改为“JavaGenerator”;
问题解决,填坑2完成,但还是有报错:
xml的 org.jooq.util.mysql.MySQLDatabase 找不到??去官网的模板瞄一下:
ok,注释掉它并修改为“org.jooq.meta.mysql.MySQLDatabase”;
最后一个坑填完!结束。
最后执行指令:
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
无报错:
项目结构:
总结:纸上得来终觉浅,绝知此事要躬行。