一. jOOQ简介
1. jOOQ概述
jOOQ(Java Object Oriented Querying): 翻译成中文是 Java面向对象查询的意思。
jOOQ是Data Geekery提供的基于Java的轻量级数据库访问库,通过特定的语法将类以及数据库模型翻译成对应的SQL语句实现实体与关系的映射,在数据库与类之间建立起一一对应关系,也可以让我们通过它的流式API构建出类型安全的SQL查询。
jOOQ是一个基于Java编写SQL的工具包,具有简单、轻量、函数式编程写SQL等独特优势,非常适合敏捷快速迭代开发。
jOOQ不管是商业版,还是开源版本都能跟Spring Boot一块使用。
2. jOOQ的特点:
- 继承了ORM框架的优点,简单操作,类型安全等。jOOQ将SQL建模为内部DSL,使用Java编译器编译SQL语法,元数据和数据类型。
- jOOQ会根据数据库的元数据来生成对应的实体类,省略了原有开发中不断修改对应数据库的类名,属性名。
- jOOQ允许运行时配置数据库模式,且支持行级别的安全。
- 支持联合查询,多表查询,存储过程等数据库高级操作。
二. Spring Boot中整合jOOQ
1.创建Web项目
我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。
2. 添加依赖和插件
3. 创建JooqConfig配置文件
在resource目录下,创建一个JooqConfig.xml配置文件,用来进行关联数据库,根据数据库进行逆向生成对应的Java代码。
4. mvn执行逆向工程
在lifecycle中执行compile命令,就可以自动执行逆向工程的命令了。
只要JooqConfig.xml配置文件没问题,并且依赖包都完整下载,就可以逆向工程执行成功。
逆向工程执行完毕后,我们就可以看到如下效果,发现自动生成了很多的Java代码,这些Java代码就是根据我们数据库中的表,生成的对应的Java代码。
对应的数据库表:
5. 配置application.yml文件
主要是配置关联我们的数据库。
6. 创建DataSource配置类
7.创建Service层代码
创建UserService接口, 创建UserServiceImpl类
8. 创建Controller测试接口
9. 创建入口类
10.总的项目结构
11.测试接口
我们在浏览器中进行测试。
可以看到我们的接口功能已经实现了,感兴趣的朋友可以自己试验一下。