DSLContext API
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
DSLContext 引用一个 org.jooq.Configuration
,它是一个配置 jOOQ 在执行查询时的行为的对象(更多详情请参见 SQL 执行)。与静态 DSL 不同,DSLContext 允许创建已经“配置”好并准备好执行的 SQL 语句。
流畅地创建 DSLContext 对象
DSLContext 对象可以从 DSL 类型流畅地创建。
// Create it from a pre-existing configuration DSLContext create = DSL.using(configuration); // Create it from ad-hoc arguments DSLContext create = DSL.using(connection, dialect);
如果您没有对预先存在的 Configuration 对象的引用(例如,从 org.jooq.impl.DefaultConfiguration
创建的),各种重载的 DSL.using()
方法将为您创建一个。
Configuration 对象的内容
Configuration 可以提供以下对象
-
org.jooq.SQLDialect
:您的数据库的方言。这可以是当前支持的任何数据库类型(更多详情请参见 SQL 方言) -
org.jooq.conf.Settings
:一个可选的运行时配置(更多详情请参见 自定义设置) -
org.jooq.ExecuteListenerProvider
:用于提供执行生命周期监听器(更多详情请参见 ExecuteListeners) -
org.jooq.ParseListenerProvider
:用于提供自定义解析器扩展(更多详情请参见 SQL 解析器监听器) -
org.jooq.RecordListenerProvider
:用于为您的 CRUD 操作提供记录监听器(更多详情请参见 CRUD SPI: RecordListener) -
org.jooq.RecordMapperProvider
:用于提供替代的默认记录映射器实现(更多详情请参见 RecordMapperProvider) -
org.jooq.FormattingProvider
:用于提供自定义的默认数据导出格式(更多详情请参见 FormattingProvider) - JDBC 访问
-
java.sql.Connection
:一个可选的 JDBC Connection,将在您的 Configuration 的整个生命周期中重复使用(更多详情请参见 Connection vs. DataSource)。为简单起见,本手册中大多时候都引用此用例。 -
java.sql.DataSource
:一个可选的 JDBC DataSource,将在您的 Configuration 的整个生命周期中重复使用。如果您更喜欢使用 DataSource 而不是 Connection,jOOQ 将在内部从您的 DataSource 获取新的 Connection,并在查询执行后方便地再次关闭它们。这在 Java EE 或 Spring 上下文中特别有用(更多详情请参见 Connection vs. DataSource) -
org.jooq.ConnectionProvider
:一个自定义抽象,jOOQ 使用它来“获取”和“释放”连接。jOOQ 将在内部从您的 ConnectionProvider “获取”新的 Connection,并在查询执行后方便地“释放”它们。(更多详情请参见 Connection vs. DataSource)
-
- R2DBC 访问
-
io.r2dbc.spi.Connection
:一个可选的 R2DBC Connection,将在您的 Configuration 的整个生命周期中重复使用(更多详情请参见 Connection vs. DataSource)。为简单起见,本手册中大多时候都引用此用例。 -
io.r2dbc.spi.ConnectionFactory
:一个可选的 R2DBC ConnectionFactory,将在您的 Configuration 的整个生命周期中重复使用。如果您更喜欢使用 ConnectionFactory 而不是 Connection,jOOQ 将在内部从您的 ConnectionFactory 获取新的 Connection,并在查询执行后方便地再次关闭它们。这在 Spring 上下文中特别有用(更多详情请参见 Connection vs. DataSource)
-
DSLContext 的用法
// The DSLContext is "configured" with a Connection and a SQLDialect DSLContext create = DSL.using(connection, dialect); // This select statement contains an internal reference to the DSLContext's Configuration: Select<?> select = create.selectOne(); // Using the internally referenced Configuration, the select statement can now be executed: Result<?> result = select.fetch();
请注意,您不需要保留对 DSLContext 的引用。您也可以内联您的局部变量,并流畅地执行 SQL 语句,例如
// Execute a statement from a single execution chain: Result<?> result = DSL.using(connection, dialect) .select() .from(BOOK) .where(BOOK.TITLE.like("Animal%")) .fetch();
目录
- 3.2.1.
- SQL 方言
- 3.2.2.
- SQL方言系列
- 3.2.3.
- SQL方言类别
- 3.2.4.
- Connection与DataSource
- 3.2.5.
- 自定义数据
- 3.2.6.
- 自定义ExecuteListeners
- 3.2.7.
- 自定义Unwrappers
- 3.2.8.
- 自定义设置
- 3.2.8.1.
- 自动附加记录
- 3.2.8.2.
- 自动内联绑定值
- 3.2.8.3.
- 反斜杠转义
- 3.2.8.4.
- 批量大小
- 3.2.8.5.
- 计算列激活 (新增)
- 3.2.8.6.
- 计算列仿真
- 3.2.8.7.
- 诊断连接
- 3.2.8.8.
- 诊断日志记录
- 3.2.8.9.
- 方言兼容性
- 3.2.8.10.
- 脏跟踪 (新增)
- 3.2.8.11.
- 美元引号字符串标记
- 3.2.8.12.
- 执行日志记录
- 3.2.8.13.
- 执行日志记录SQL异常
- 3.2.8.14.
- 获取已修剪的CHAR类型 (新增)
- 3.2.8.15.
- 获取警告
- 3.2.8.16.
- GROUP_CONCAT配置
- 3.2.8.17.
- 标识符样式
- 3.2.8.18.
- 隐式连接类型
- 3.2.8.19.
- 内联阈值
- 3.2.8.20.
- IN列表填充
- 3.2.8.21.
- 解释器配置
- 3.2.8.22.
- JDBC标志
- 3.2.8.23.
- 关键字样式
- 3.2.8.24.
- 监听器调用顺序
- 3.2.8.25.
- 语言环境
- 3.2.8.26.
- 映射JPA注解
- 3.2.8.27.
- 对象限定
- 3.2.8.28.
- 列的对象限定
- 3.2.8.29.
- 乐观锁定
- 3.2.8.30.
- 参数名称前缀
- 3.2.8.31.
- 参数类型
- 3.2.8.32.
- 解析器配置
- 3.2.8.33.
- 只读列行为
- 3.2.8.34.
- 反射缓存
- 3.2.8.35.
- 渲染配置
- 3.2.8.36.
- 存储时返回所有列
- 3.2.8.37.
- 存储时返回计算列
- 3.2.8.38.
- 存储时返回DEFAULT列
- 3.2.8.39.
- 存储时返回身份值
- 3.2.8.40.
- 运行时目录、模式和表映射
- 3.2.8.41.
- 存储过程的标量子查询
- 3.2.8.42.
- SEEK子句实现
- 3.2.8.43.
- 语句类型
- 3.2.8.44.
- 可更新的主键
- 3.2.9.
- 线程安全
上一节 : 下一节 |
引用此页
- SQL 方言
- Connection与DataSource
- 自定义数据
- 自定义ExecuteListeners
- 设置: 自动附加记录
- 设置:监听器调用顺序
- 使用这个简单的 SPI 扩展 jOOQ 解析器
- 使用 jOOQ 的解析器作为 SQL 翻译器
- 可序列化性
- 配置
- 安全注意事项
- RecordMapper
- POJOs
- RecordMapperProvider SPI
- ConverterProvider SPI
- 静态语句与预编译语句
- 序列执行
- FormattingProvider
- 简单的 CRUD 操作
- 批量执行
- CRUD SPI:RecordListener
- 事务管理
- ExecuteListeners
- 从 JDBC 驱动程序读取数据库元数据
- JDBC 连接
- 模拟连接
- 解析连接
- 性能考虑
- 不要用 jOOQ 做这个:实现 DSL 类型
反馈
您对此页面有任何反馈吗? 我们很乐意听到!