@Test public void containsDelimiters() { assertFalse(containsSqlScriptDelimiters("select 1\n select ';'", ";")); assertTrue(containsSqlScriptDelimiters("select 1; select 2", ";")); assertFalse(containsSqlScriptDelimiters("select 1; select '\\n\n';", "\n")); assertTrue(containsSqlScriptDelimiters("select 1\n select 2", "\n")); assertFalse(containsSqlScriptDelimiters("select 1\n select 2", "\n\n")); assertTrue(containsSqlScriptDelimiters("select 1\n\n select 2", "\n\n")); // MySQL style escapes '\\' assertFalse(containsSqlScriptDelimiters("insert into users(first_name, last_name)\nvalues('a\\\\', 'b;')", ";")); assertTrue(containsSqlScriptDelimiters("insert into users(first_name, last_name)\nvalues('Charles', 'd\\'Artagnan'); select 1;", ";")); }
separator = DEFAULT_STATEMENT_SEPARATOR; if (!EOF_STATEMENT_SEPARATOR.equals(separator) && !containsSqlScriptDelimiters(script, separator)) { separator = FALLBACK_STATEMENT_SEPARATOR;
/** * Determine if the provided SQL script contains the specified delimiter. * @param script the SQL script * @param delim character delimiting each statement — typically a ';' character * @return {@code true} if the script contains the delimiter; {@code false} otherwise * @deprecated as of Spring 4.0.3, in favor of using * {@link org.springframework.jdbc.datasource.init.ScriptUtils#containsSqlScriptDelimiters} */ @Deprecated public static boolean containsSqlScriptDelimiters(String script, char delim) { return ScriptUtils.containsSqlScriptDelimiters(script, String.valueOf(delim)); }
separator = DEFAULT_STATEMENT_SEPARATOR; if (!EOF_STATEMENT_SEPARATOR.equals(separator) && !containsSqlScriptDelimiters(script, separator)) { separator = FALLBACK_STATEMENT_SEPARATOR;