/** * 通过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 ParameterHandler createParameterHandler(MappedStatement mappedStatement, Object o, BoundSql boundSql) { logger.trace("createParameterHandler({}, Object: {}, BoundSql:{}", mappedStatement, o, boundSql.getSql()); logger.trace("Object: class:{}, isMap:{}", o.getClass().getName(), o instanceof Map); // logger.trace("") logger.trace("boundSql: class: {}, sql: {}, getParameterMappings: {}, getParameterObject:{}", boundSql.getClass().getName(), boundSql.getSql(), boundSql.getParameterMappings(), boundSql.getParameterObject()); return super.createParameterHandler(mappedStatement, o, boundSql); }
public JpaPrepareInterceptor( MybatisJpaConfiguration jpaConfig, Configuration configuration ) { XMLLanguageDriver languageDriver = new XMLLanguageDriver(); switch ( jpaConfig.getDatabaseId() ) { case MybatisCoreConfiguration.MYSQL: { sqlCreator = new MysqlCrudSqlCreator( configuration, languageDriver ); break; } default: { throw new UnsupportedOperationException( String.format( "No match database '%s'", jpaConfig.getDatabaseId() ) ); } } jpaSqlCreator = new JpaSqlCreator( configuration, languageDriver ); Map<String, Method> methods = new HashMap<>(); Map<String, Class<?>[]> parameters = new HashMap<>(); for ( Method method : sqlCreator.getClass().getDeclaredMethods() ) { methods.put( method.getName(), method ); parameters.put( method.getName(), method.getParameterTypes() ); } this.methods = Collections.unmodifiableMap( methods ); this.parameters = Collections.unmodifiableMap( parameters ); }
/** * 通过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, XNode script, Class<?> parameterType) { return super.createSqlSource(configuration, script, parameterType); }
@Override public SqlSource createSqlSource(Configuration configuration, XNode xNode, Class<?> parameterType) { logger.trace("createSqlSource({}, XNode: {}, {}", configuration, xNode, parameterType); return super.createSqlSource(configuration, xNode, 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); }
public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) { String result = script; Matcher matcher = inPattern.matcher(result); if (matcher.find()) { result = matcher.replaceAll("(<foreach collection=\"$1\" item=\"__item\" separator=\",\" >#{__item}</foreach>)"); } result = "<script>" + result + "</script>"; return super.createSqlSource(configuration, result, 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); }