可用版本: Dev (3.21) | 最新版 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

反斜杠转义

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

一些数据库(主要是 MySQL 和 MariaDB)不幸选择了另一种非 SQL 标准的方式来转义字符串字面量。 这是一个关于如何在不同方言中转义包含撇号的字符串的示例

SELECT 'I''m sure this is OK' AS val             -- Standard SQL escaping of apostrophe by doubling it.
SELECT 'I\'m certain this causes trouble' AS val -- Vendor-specific escaping of apostrophe by using a backslash.

由于大多数数据库不支持反斜杠转义(并且 MySQL 也允许关闭它!),因此当 内联绑定变量时,jOOQ 默认情况下也不支持它。 但是,如果不小心处理,这可能会导致 SQL 注入漏洞和语法错误!

默认情况下,此功能对于 MySQL 和 MariaDB 处于启用状态,这出于历史原因。

  • DEFAULT(令人惊讶的是!- 默认值):对于 MySQL 和 MariaDB,将该功能设置为 ON,对于所有其他方言,设置为 OFF
  • ON: 启用该功能。
  • OFF:关闭该功能。

示例配置

Settings settings = new Settings()
    .withBackslashEscaping(BackslashEscaping.OFF); // Default to DEFAULT

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo