jooq spring mysql_【中级篇】详细讲解使用SpringBoot + Jooq整合(一)

一、什么是JOOQ:

JOOQ 是基于Java访问关系型数据库的工具包。JOOQ 既吸取了传统ORM操作数据的简单性和安全性,又保留了原生sql的灵活性,它更像是介于 ORMS和JDBC的中间层。

DSL(Domain Specific Language )风格,代码够简单和清晰。遇到不会写的sql可以充分利用IDEA代码提示功能轻松完成。

保留了传统ORM 的优点,简单操作性,安全性,类型安全等。不需要复杂的配置,并且可以利用Java 8 Stream API 做更加复杂的数据转换。

支持主流的RDMS和更多的特性,如self-joins,union,存储过程,复杂的子查询等等。

丰富的Fluent API和完善文档。

runtime schema mapping 可以支持多个数据库schema访问。简单来说使用一个连接池可以访问N个DB schema,使用比较多的就是SaaS应用的多租户场景。

如何反向生成Jooq?

前言:本次项目的搭建使用SpringBoot + MySQL + Jooq整合

1.创建好SpringBoot项目后在pom.xml中导入jooq所需包:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.1.4.RELEASE

com.demo

springjooq-1

0.0.1-SNAPSHOT

springjooq-1

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

mysql

mysql-connector-java

5.1.21

org.springframework.boot

spring-boot-starter-jooq

org.projectlombok

lombok

1.16.18

com.alibaba

fastjson

1.2.15

com.alibaba

druid

1.1.3

org.jooq

jooq-meta

org.jooq

jooq-codegen

org.springframework.boot

spring-boot-maven-plugin

org.jooq

jooq-codegen-maven

${jooq.version}

generate

mysql

mysql-connector-java

5.1.21

src/main/resources/JooqConfig.xml

2.在application.properties中加入访问数据库路径

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3.在SpringBoot项目结构的src/main/resources下创建一个JooqConfig.xml

com.mysql.jdbc.Driver

jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8

root

123456

org.jooq.meta.mysql.MySQLDatabase

.*

demo

true

true

true

false

com.demo.main.jooq

src/main/java

4.右击项目选择Run->Maven install运行即可,如图 (注:如使用IDEA在编辑器的右边点击Maven找到指定项目点击install即可 )

d947e2d78b629a1f5b25b52bd69f2a36.png

5.生成好后可以看到项目的结构

2599f8fe25872245cee398e64fecb67c.png

6.生成的每个类是做什么的!

1.先讲解下jooq包下面的每个类的作用:

9c1150bc2751d09cf36c78bee44d866f.png

DefaultCatalog.java:里面存放的是Demo.java也就是数据库名

/*

* This file is generated by jOOQ.

*/

package com.demo.main.jooq;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import javax.annotation.Generated;

import org.jooq.Schema;

import org.jooq.impl.CatalogImpl;

/**

* This class is generated by jOOQ.

*/

@Generated(

value = {

"http://www.jooq.org",

"jOOQ version:3.11.9"

},

comments = "This class is generated by jOOQ"

)

@SuppressWarnings({ "all", "unchecked", "rawtypes" })

public class DefaultCatalog extends CatalogImpl {

private static final long serialVersionUID = 1891688733;

/**

* The reference instance of

*/

public static final DefaultCatalog DEFAULT_CATALOG = new DefaultCatalog();

/**

* The schema demo.

*/

public final Demo DEMO = com.demo.main.jooq.Demo.DEMO;

/**

* No further instances allowed

*/

private DefaultCatalog() {

super("");

}

@Override

public final List getSchemas() {

List result = new ArrayList();

result.addAll(getSchemas0());

return result;

}

private final List getSchemas0() {

return Arrays.asList(

Demo.DEMO);

}

}

Demo.java里面存放的是数据库的表

/*

* This file is generated by jOOQ.

*/

package com.demo.main.jooq;

import com.demo.main.jooq.tables.SClass;

import com.demo.main.jooq.tables.Student;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import javax.annotation.Generated;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值