JDBC SQL 转义语法详解是什么?


转义语法使您可以灵活地使用数据库特定功能,而这些功能无法通过使用标准 JDBC 方法和属性来获得。

一般的 SQL 转义语法格式如下所示

{keyword 'parameters'}

以下是 JDBC 中的各种转义语法

d、t、ts 关键字:它们有助于识别日期、时间和时间戳文字。众所周知,不同的 DBMS 表示时间和日期的方式不同。此转义语法告诉驱动程序以目标数据库的格式呈现日期或时间

{d 'yyyy-mm-dd'}

其中 yyyy = 年,mm = 月;dd = 日。使用此语法 {d '2009-09-03'} 表示 2009 年 3 月 9 日。

示例

//Create a Statement object
stmt = conn.createStatement();
//Insert data ==> ID, First Name, Last Name, DOB
String sql="INSERT INTO STUDENTS VALUES" + "(100,'Zara','Ali', {d '2001-12-16'})";
stmt.executeUpdate(sql);

escape 关键字

此关键字标识在 LIKE 子句中使用的转义字符。在使用 SQL 通配符 % 时很有用,该通配符匹配零个或多个字符。例如 -

String sql = "SELECT symbol FROM MathSymbols WHERE symbol LIKE '\%' {escape '\'}";
stmt.execute(sql);

如果您使用反斜杠字符 (\) 作为转义字符,则在 Java 字符串文字中也必须使用两个反斜杠字符,因为反斜杠也是 Java 转义字符。

fn 关键字

此关键字表示在 DBMS 中使用的标量函数。例如,您可以使用 SQL 函数 length 获取字符串的长度 -

{fn length('Hello World')}

这将返回 11,即字符字符串“Hello World”的长度。call 关键字

此关键字用于调用存储过程。例如,对于需要 IN 参数的存储过程,请使用以下语法 -

{call my_procedure(?)};

对于需要 IN 参数并返回 OUT 参数的存储过程,请使用以下语法 -

{? = call my_procedure(?)};

oj 关键字

此关键字用于表示外连接。语法如下 -

{oj outer-join}

其中 outer-join = 表 {LEFT|RIGHT|FULL} OUTERJOIN {表 | outer-join} on 搜索条件。

String sql = "SELECT Employees FROM {oj ThisTable RIGHT OUTER JOIN ThatTable on id = '100'}";
stmt.execute(sql);

更新于: 2019 年 7 月 30 日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告