整合使用jOOQ面向对象查询

一. 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项目,具体过程略。

整合使用jOOQ面向对象查询

2. 添加依赖和插件

3. 创建JooqConfig配置文件

在resource目录下,创建一个JooqConfig.xml配置文件,用来进行关联数据库,根据数据库进行逆向生成对应的Java代码。

4. mvn执行****

在lifecycle中执行compile命令,就可以自动执行****的命令了。
只要JooqConfig.xml配置文件没问题,并且依赖包都完整下载,就可以****执行成功。

整合使用jOOQ面向对象查询

****执行完毕后,我们就可以看到如下效果,发现自动生成了很多的Java代码,这些Java代码就是根据我们数据库中的表,生成的对应的Java代码。

整合使用jOOQ面向对象查询

对应的数据库表:

整合使用jOOQ面向对象查询

5. 配置application.yml文件

主要是配置关联我们的数据库。

6. 创建DataSource配置类

7.创建Service层代码

创建UserService接口

创建UserServiceImpl类

8. 创建Controller测试接口

9. 创建入口类

10.总的项目结构

整合使用jOOQ面向对象查询

11.测试接口

我们在浏览器中进行测试。

整合使用jOOQ面向对象查询

可以看到我们的接口功能已经实现了,其他方法没有一一测试,感兴趣的朋友可以自己试验一下。