项目导入jooq
SpringBoot项目导入jooq
在业务模块的
pom
文件中引入依赖1
2
3
4
5<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq</artifactId>
<version>${jooq.version}</version>
</dependency>引入
jooq-gen
修改
library.xml
中的配置,主要是jdbc
的配置和文件生成位置在终端中运行
win-generate.bat
生成相关文件
配置JooqConfig
首先要确保dataSource配置正确
然后新建JooqConfig类,并使用
@Configuration
注解注意在Config类中注册bean时,name字段决定了自动装配的bean名称
1
2
3
4
5
6/*DSLContext for rppm */
public DefaultDSLContext dslContext( DataSourceConnectionProvider connectionProviderRppm,
{ SpringTransactionProvider transactionProviderRppm)
return new DefaultDSLContext(configuration(connectionProviderRppm, transactionProviderRppm));
}
例如,使用@Resource private DSLContext dslRppm;
进行装配时会去查找名称为dslRppm
的bean,即自己配置的DSLContext
- 具体的JooqConfig类,可以去standard-server中查看
在业务方法中使用jooq进行查询
注入依赖
@Resource private DSLContext dslRppm;
会根据上面的配置的bean的名称进行自动装配查询语句示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Result<Record> result = dslRppm
.select()
.from(STUDENT_TABLE)
.fetch();
result.forEach(res -> {
Map<String, Object> map = new HashMap<>();
String id = res.getValue(STUDENT_TABLE.ID);
map.put("id", id);
String name = res.getValue(STUDENT_TABLE.NAME);
map.put("name", name);
Integer age = res.getValue(STUDENT_TABLE.AGE);
map.put("age", age);
list.add(map);
});
Result<StudentTableRecord> studentTableRecords = result.into(STUDENT_TABLE);
studentTableRecords.forEach(studentTableRecord -> {
String id = studentTableRecord.getId();
});上述语句会查询student_table表中的所有数据,并保存在Result中,其继承了List类,可以当成List使用;也可以使用
.into()
方法,将默认Record对象,转换为表的Record对象,直接调用getter/setterfetchInto方法可以可以传入任意class类型,或者表常量
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Monster龙!