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

2018年10月14日

目录

一、前言

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

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

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

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

b66a4b765324c3a56ac1da733a17e374.png

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

坑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被移除掉了),但还是有错误提示:

6b0ffc60d30ef2ba52c5cacb4cac4d93.png

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

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

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

f5c18e63f41e702c50ab9ed777d09c95.png

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

63af940ddfdbc2a646b4417f6b26655e.png

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

90bc5cd62a38cd363dcd6316d28c1f0b.png

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

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

352e5045bed48c16c1b8ffd928642eaa.png

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

257491da197049fba0495b50c1fe8994.png

最后一个坑填完!结束。

四、最终运行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

无报错:

4aadcca19b34321e78b0b9069cbaaf0b.png

项目结构:

bfac26cce0256a961aafb56fd088d25c.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值