反斜杠转义
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
一些数据库(主要是 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
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!