JDBC SQL 转义语法解释是什么?
jdbcjava 8mysqlmysqli database
转义语法使您可以灵活地使用标准 JDBC 方法和属性无法使用的数据库特定功能。
一般 SQL 转义语法格式如下:
{keyword 'parameters'}
以下是 JDBC 中的各种转义语法:
d、t、ts 关键字:它们有助于识别日期、时间和时间戳文字。如您所知,没有两个 DBMS 以相同的方式表示时间和日期。此转义语法告诉驱动程序以目标数据库的格式呈现日期或时间
{d 'yyyy-mm-dd'}
Where yyyy = year, mm = month; dd = date. Using this syntax {d '2009-09-03'} is March 9, 2009.
示例
//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')}
这将返回字符串 'Hello World' 的长度 11。call 关键字
此关键字用于调用存储过程。例如,对于需要 IN 参数的存储过程,请使用以下语法 −
{call my_procedure(?)};
对于需要 IN 参数并返回 OUT 参数的存储过程,请使用以下语法 −
{? = call my_procedure(?)};
oj 关键字
此关键字用于表示外连接。语法如下 −
{oj outer-join}
其中 outer-join = table {LEFT|RIGHT|FULL} OUTERJOIN {table | outer-join} on search-condition。
String sql = "SELECT Employees FROM {oj ThisTable RIGHT OUTER JOIN ThatTable on id = '100'}"; stmt.execute(sql);