2.69. SQL
执行 SQL 查询。
2.69.1. 内部
-
SQL 组件, URI 语法:
sql:query
-
SQL Storedprocesses 组件, URI 语法:
sql-stored:template
有关用法和配置详情,请参阅上述链接。
2.69.2. Maven 协调
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者在现有项目中添加协调:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-sql</artifactId> </dependency>
2.69.3. Camel Quarkus 限制
Oracle JDBC 驱动程序引入了一些 GraalVM native-image 配置,它一般会破坏 Camel Quarkus 和 Quarkus 中的序列化支持。如需更多详细信息,请参阅这个 quarkus 问题。
由于此问题,聚合存储库 无法在 Oracle db 的原生模式下工作。
2.69.4. 其他 Camel Quarkus 配置
2.69.4.1. 配置数据源
此扩展利用 Quarkus Agroal 支持 DataSource
支持。设置 DataSource
可以通过配置属性来实现。
quarkus.datasource.db-kind=postgresql quarkus.datasource.username=your-username quarkus.datasource.password=your-password quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/your-database quarkus.datasource.jdbc.max-size=16
Camel SQL 组件将自动从 registry 解析 DataSource
bean。在配置多个数据源时,您可以通过 URI 选项 datasource
或 dataSourceRef
来指定在 SQL 端点上使用的。如需了解更多详细信息,请参阅 SQL 组件文档。
2.69.4.1.1. 带有 Quarkus Dev Services 的零配置
在 dev 和 test 模式中,您可以利用 Configuration Free Databases。Camel SQL 组件将自动配置为使用一个 DataSource
,它指向与您选择的 JDBC 驱动程序类型匹配的数据库的容器化实例。
2.69.4.2. SQL 脚本
当将 sql
或 sql 存储
的端点配置为引用类路径中的脚本文件时,请设置以下配置属性以确保它们在原生模式中可用。
quarkus.native.resources.includes = queries.sql, sql/*.sql
2.69.4.3. 处于原生模式的 SQL 聚合存储库
要在原生模式中使用类似 JdbcAggregationRepository
的 SQL 聚合存储库,您必须启用原生序列化支持。
另外,如果您的交换器是自定义类型,则必须通过向 @RegisterForReflection(serialization = true)
标注类声明来重新进行序列化。