Package org.mariadb.jdbc.util
Class NativeSql
- java.lang.Object
-
- org.mariadb.jdbc.util.NativeSql
-
public final class NativeSql extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description NativeSql()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Stringparse(java.lang.String sql, Context context)private static java.lang.StringreplaceFunctionParameter(java.lang.String functionString, Context context)Helper function to replace function parameters in escaped string.private static java.lang.StringresolveEscapes(java.lang.String escaped, Context context)
-
-
-
Method Detail
-
parse
public static java.lang.String parse(java.lang.String sql, Context context) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
resolveEscapes
private static java.lang.String resolveEscapes(java.lang.String escaped, Context context) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
replaceFunctionParameter
private static java.lang.String replaceFunctionParameter(java.lang.String functionString, Context context)Helper function to replace function parameters in escaped string. 3 functions are handles :- CONVERT(value, type): replacing SQL_XXX types to convertible type, i.e SQL_BIGINT to INTEGER
- TIMESTAMPDIFF(type, ...): replacing type SQL_TSI_XXX in type with XXX, i.e SQL_TSI_HOUR with HOUR
- TIMESTAMPADD(type, ...): replacing type SQL_TSI_XXX in type with XXX, i.e SQL_TSI_HOUR with HOUR
caution: this use MariaDB server conversion: 'SELECT CONVERT('2147483648', INTEGER)' will return a BIGINT. MySQL will throw a syntax error.
- Parameters:
functionString- input string- Returns:
- unescaped string
-
-