/** * 通过xmlSql创建sqlSource * * @param ms * @param xmlSql * @return */ public SqlSource createSqlSource(MappedStatement ms, String xmlSql) { return languageDriver.createSqlSource(ms.getConfiguration(), "<script>\n\t" + xmlSql + "</script>", null); }
/** * 通过xmlSql创建sqlSource * * @param ms * @param xmlSql * @return */ public SqlSource createSqlSource(MappedStatement ms, String xmlSql) { return languageDriver.createSqlSource(ms.getConfiguration(), "<script>\n\t" + xmlSql + "</script>", null); }
@Override public SqlSource createSqlSource(Configuration configuration, XNode script, Class<?> parameterType) { SqlSource source = super.createSqlSource(configuration, script, parameterType); checkIsNotDynamic(source); return source; }
@Override public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { SqlSource source = super.createSqlSource(configuration, script, parameterType); checkIsNotDynamic(source); return source; }
@Override public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { SqlSource source = super.createSqlSource(configuration, script, parameterType); checkIsNotDynamic(source); return source; }
@Override public SqlSource createSqlSource(Configuration configuration, XNode script, Class<?> parameterType) { SqlSource source = super.createSqlSource(configuration, script, parameterType); checkIsNotDynamic(source); return source; }
@Override public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { // issue #3 if (script.startsWith("<script>")) { XPathParser parser = new XPathParser(script, false, configuration.getVariables(), new XMLMapperEntityResolver()); return createSqlSource(configuration, parser.evalNode("/script"), parameterType); } else { // issue #127 script = PropertyParser.parse(script, configuration.getVariables()); TextSqlNode textSqlNode = new TextSqlNode(script); if (textSqlNode.isDynamic()) { return new DynamicSqlSource(configuration, textSqlNode); } else { return new RawSqlSource(configuration, script, parameterType); } } }
@Override public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { // issue #3 if (script.startsWith("<script>")) { XPathParser parser = new XPathParser(script, false, configuration.getVariables(), new XMLMapperEntityResolver()); return createSqlSource(configuration, parser.evalNode("/script"), parameterType); } else { // issue #127 script = PropertyParser.parse(script, configuration.getVariables()); TextSqlNode textSqlNode = new TextSqlNode(script); if (textSqlNode.isDynamic()) { return new DynamicSqlSource(configuration, textSqlNode); } else { return new RawSqlSource(configuration, script, parameterType); } } }
/** * 通过xml解析语言驱动创建SqlSource * * @param configuration 配置对象 * @param sql sqlSource内存放的sql语句 * @param parameterType 参数类型 * @return SqlSource对象 */ public static SqlSource createSqlSource(Configuration configuration, String sql, Class<?> parameterType) { return languageDriver.createSqlSource(configuration, sql, parameterType); }
@Override public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { return super.createSqlSource(configuration, script, parameterType); } }
@Override public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { Matcher matcher = inPattern.matcher(script); if (matcher.find()) { script = matcher.replaceAll("<foreach collection=\"$1\" item=\"_item\" open=\"(\" " + "separator=\",\" close=\")\" > #{_item} </foreach>"); } script = "<script> " + script + " </script>"; return super.createSqlSource(configuration, script, parameterType); }
/** * 创建SqlSource * * @param ms ms * @param xmlSql xmlSql * @return SqlSource */ private SqlSource createSqlSource(MappedStatement ms, String xmlSql) { return languageDriver.createSqlSource(ms.getConfiguration(), "<script>\n\t" + xmlSql + "</script>", null); }
public SqlSource createSqlSource(MappedStatement ms, String xmlSql) { return languageDriver.createSqlSource(ms.getConfiguration(), "<script>\n\t" + xmlSql + "</script>", null); } }
/** * 通过xmlSql创建sqlSource * * @param ms * @param xmlSql * @return */ public SqlSource createSqlSource(MappedStatement ms, String xmlSql) { return languageDriver.createSqlSource(ms.getConfiguration(), "<script>\n\t" + xmlSql + "</script>", null); }
/** * 通过xmlSql创建sqlSource * * @param ms * @param xmlSql * @return */ public SqlSource createSqlSource(MappedStatement ms, String xmlSql) { return languageDriver.createSqlSource(ms.getConfiguration(), "<script>\n\t" + xmlSql + "</script>", null); }
@Override @ParametersAreNonnullByDefault public SqlSource apply( XMLLanguageDriver xmlLanguageDriver ) { return xmlLanguageDriver.createSqlSource( configuration, "<script> " + String.format( " delete from %s where %s in ", metadata.getTableName(), metadata.getId().getJdbcName() ) + String.format( " <foreach collection=\"%s\" item=\"id\" open=\"(\" separator=\",\" close=\")\"> ", IDS ) + " #{id} " + " </foreach> " + " </script> ", getSpecifyParameterType( IDS, unknownArgs ) ); } } );
/** * 重新装载MappedStatement的SqlSource内容 * sql字符串如果以script开头,那么表示内容是mybatis可以识别的xml方式字符串 * * @param statement MappedStatement实例 * @param sql 构建mybatis可以识别的sql(普通sql、xml方式sql) */ public void reloadSqlSource(MappedStatement statement, String sql) { // 根据语言驱动创建SqlSource对象 SqlSource sqlSource = languageDriver.createSqlSource(statement.getConfiguration(), sql, null); // 重新装载SqlSource reloadSqlSource(statement, sqlSource); }
@Override @ParametersAreNonnullByDefault public SqlSource apply( XMLLanguageDriver xmlLanguageDriver ) { return xmlLanguageDriver.createSqlSource( configuration, "<script>" + String.format( " insert into %s( %s ) values ", metadata.getTableName(), insertPair.getFields() ) + String.format( " <foreach collection=\"%s\" item=\"%s\" open=\"(\" separator=\"), (\" close=\")\"> ", ENTITIES, ENTITY ) + insertPair.getValues() + " </foreach> " + " </script> ", getSpecifyParameterType( ENTITY, unknownArgs ) ); } } );
@Override @ParametersAreNonnullByDefault public SqlSource apply( XMLLanguageDriver xmlLanguageDriver ) { return xmlLanguageDriver.createSqlSource( configuration, String.format( "insert into %s( %s ) values( %s )", metadata.getTableName(), insertPair.getFields(), insertPair.getValues() ), getSpecifyParameterType( ENTITY, unknownArgs ) ); } } );
@Override @ParametersAreNonnullByDefault public SqlSource apply( XMLLanguageDriver xmlLanguageDriver ) { return xmlLanguageDriver.createSqlSource( configuration, String.format( "delete from %s where %s = #{%s}", metadata.getTableName(), metadata.getId().getJdbcName(), ID ), getSpecifyParameterType( ID, unknownArgs ) ); } } );