前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构之Spring Boot(四十五)

微服务架构之Spring Boot(四十五)

作者头像
用户1289394
发布2022-05-23 14:27:12
8680
发布2022-05-23 14:27:12
举报
文章被收录于专栏:Java学习网

30.6使用jOOQ

Java面向对象查询(jOOQ)是Data Geekery的一个流行产品, 它从您的数据库生成Java代码,并允许您通过其流畅的API构建类型安全的SQL

查询。商业版和开源版都可以与Spring Boot一起使用。

30.6.1代码生成

要使用jOOQ类型安全查询,您需要从数据库模式生成Java类。您可以按照jOOQ用户手册中的说明进行 操作。如果您使

用 jooq-codegen-maven 插件并且还使用 spring-boot-starter-parent “父POM”,则可以安全地省略插件的 <version> 标记。您还可以

使用Spring引导定义的版本变量(例如 h2.version )来声明插件的数据库依赖性。以下清单显示了一个示例:

<plugin>

<groupId>org.jooq</groupId>

<artifactId>jooq-codegen-maven</artifactId>

<executions>

...

</executions>

<dependencies>

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

<version>${h2.version}</version>

</dependency>

</dependencies>

<configuration>

<jdbc>

<driver>org.h2.Driver</driver>

<url>jdbc:h2:~/yourdatabase</url>

</jdbc>

<generator>

...

</generator>

</configuration>

</plugin>

30.6.2使用DSLContext

jOOQ提供的流畅API通过 org.jooq.DSLContext 接口启动。Spring Boot将 DSLContext 自动配置为Spring Bean并将其连接到您的应

用 DataSource 。要使用 DSLContext ,您可以 @Autowire ,如下例所示:

@Component

public class JooqExample implements CommandLineRunner {

private final DSLContext create;

@Autowired

public JooqExample(DSLContext dslContext) {

this.create = dslContext;

}

}

jOOQ手册倾向于使用名为 create 的变量来保存 DSLContext 。

然后,您可以使用 DSLContext 构建查询,如以下示例所示:

public List<GregorianCalendar> authorsBornAfter1980() {

return this.create.selectFrom(AUTHOR)

.where(AUTHOR.DATE_OF_BIRTH.greaterThan(new GregorianCalendar(1980, 0, 1)))

.fetch(AUTHOR.DATE_OF_BIRTH);

}

30.6.3 jOOQ SQL方言

除非已配置 spring.jooq.sql-dialect 属性,否则Spring Boot将确定用于数据源的SQL方言。如果Spring Boot无法检测到方言,则使

用 DEFAULT 。

Spring Boot只能自动配置开源版本的jOOQ支持的方言。

30.6.4自定义jOOQ

通过定义自己的 @Bean 定义可以实现更高级的自定义,这些定义在创建jOOQ Configuration 时使用。您可以为以下jOOQ类型定义beans:

ConnectionProvider

ExecutorProvider

TransactionProvider

RecordMapperProvider

RecordUnmapperProvider

RecordListenerProvider

ExecuteListenerProvider

VisitListenerProvider

TransactionListenerProvider

如果您想完全控制jOOQ配置,也可以创建自己的 org.jooq.Configuration @Bean 。

31.使用NoSQL Technologies

Spring数据提供了其他项目,可帮助您访问各种NoSQL技术,包括:MongoDB, Neo4J, Elasticsearch, Solr, Redis, Gemfire,

Cassandra, Couchbase和 LDAP。Spring Boot为Redis,MongoDB,Neo4j,Elasticsearch,Solr Cassandra,Couchbase和LDAP提供自

动配置。您可以使用其他项目,但必须自己配置它们。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档