配置用于 Gradle + SQLite 的 jOOQ 3.11 代码自动生成

为什么要写这篇文章

关于如何配置用于 Gradle + SQLite 的 jOOQ 3.11 代码自动生成的文档可谓少之又少,网络上大部分文档,要么是使用 Maven,要么是针对于早期版本的 jOOQ(并不向后兼容),而 jOOQ 官方文档又很不全面,以致于许多像我这样的萌新在初次接触 jooq 时踩了不少坑,浪费了不少宝贵的时间 :)

为何一定要使用 jOOQ

复制一下 别人对此的介绍

JOOQ,全称Java Object Oriented Querying,即面向Java对象查询。它是Data Geekery公司研发的DA方案(Data Access Layer),主要解决两个问题:

  • Hibernate 的抽象使得我们离SQL太远,对SQL的掌控力度弱
  • JDBC 过于嘈杂,需要干的事情太多

JOOQ希望干的就是在上述两者中寻找一个最佳的平衡。它依据数据库中的表生成DA相关的代码,开发者将生成的代码引入项目中即可使用。

配置办法

官方文档 只贴了个代码,可以说是十分”友善”了

编辑 build.gradle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Configure the Java plugin and the dependencies
apply plugin: 'java'

repositories {
mavenLocal()
mavenCentral()
}

dependencies {
//在此处放置你的项目的原有依赖
//添加jooq依赖
compile group: 'org.jooq', name: 'jooq', version: '3.11.5'
//<!> 一定要添加所用数据库的依赖,否则会报错而且不告诉你原因
runtime group: 'org.xerial', name: 'sqlite-jdbc', version: '3.25.2'
}

buildscript {
repositories {
mavenLocal()
mavenCentral()
}

dependencies {
//添加jooq依赖
classpath 'org.jooq:jooq-codegen:3.11.5'
//<!> 一定要添加所用数据库的依赖,否则会报错而且不告诉你原因
classpath group: 'org.xerial', name: 'sqlite-jdbc', version: '3.25.2'
}
}

// Use your favourite XML builder to construct the code generation configuration file
def writer = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(writer)
.configuration('xmlns': 'http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd') {
jdbc() {
url('jdbc:sqlite:src/main/resources/database.db') // src/main/resources/database.db为数据库路径
//user() //不需要用户名,省略
//password() //不需要密码,省略
}
generator() {
database() {
includes('.*') //包括的数据表
excludes() //排除的数据表
inputSchema() //默认数据库
}

target() {
packageName('com.kenvix.pixiv.generated.jooq') //计划用于存储生成结果的包名
directory('src/main/java') //将生成结果储存于src/main/java
}
}
}

// Run the code generator
// ----------------------
org.jooq.codegen.GenerationTool.generate(writer.toString())

然后运行 gradlew buildEnvironment 看看jooq有没有什么警告,同时,你会发现代码生成好了。


转载请遵守 CC BY-NC-SA 4.0 协议并注明来自:配置用于 Gradle + SQLite 的 jOOQ 3.11 代码自动生成

Loading...

电子邮件地址不会被公开。 必填项已用 * 标注

Powered by Kenvix Comment Server v1.0