Example usage for org.apache.ibatis.scripting.xmltags TextSqlNode TextSqlNode

List of usage examples for org.apache.ibatis.scripting.xmltags TextSqlNode TextSqlNode

Introduction

In this page you can find the example usage for org.apache.ibatis.scripting.xmltags TextSqlNode TextSqlNode.

Prototype

public TextSqlNode(String text) 

Source Link

Usage

From source file:cn.com.bricks.mybatis.rbac.DynamicRbacInterceptor.java

@Override
public Object intercept(Invocation invocation) throws Throwable {
    StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
    MetaObject metaStatementHandler = MetaObject.forObject(statementHandler, DEFAULT_OBJECT_FACTORY,
            DEFAULT_OBJECT_WRAPPER_FACTORY, DEFAULT_REFLECTOR_FACTORY);
    MappedStatement mappedStatement = (MappedStatement) metaStatementHandler
            .getValue("delegate.mappedStatement");

    // ?sql/* ww w  .java 2 s . c  om*/
    BoundSql bsql = statementHandler.getBoundSql();
    // ?sql
    TextSqlNode sqlNode = new TextSqlNode(bsql.getSql());
    BoundSql nbsql = getBoundSql(mappedStatement.getConfiguration(), bsql.getParameterObject(), sqlNode);
    // ?sql?
    metaStatementHandler.setValue("delegate.boundSql.sql", nbsql.getSql());
    return invocation.proceed();
}

From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java

License:Open Source License

/**
 * create criteria from baseExample/*from w  w w .  j  a  v  a2 s.c o m*/
 * 
 * @param sqlNodes
 * @param baseExample
 */
protected SqlNode createCriteria(MappedStatement ms) {

    List<SqlNode> ifSqlNodes = new ArrayList<SqlNode>();

    SqlNode noValueSqlNode = new TextSqlNode(" ${criterion.condition} ");
    ifSqlNodes.add(new IfSqlNode(noValueSqlNode, "criterion.noValue"));

    SqlNode singleValueSqlNode = new TextSqlNode(" ${criterion.condition} #{criterion.value} ");
    ifSqlNodes.add(new IfSqlNode(singleValueSqlNode, "criterion.singleValue"));

    SqlNode betweenValueSqlNode = new TextSqlNode(
            " ${criterion.condition} #{criterion.value} and #{criterion.secondValue} ");
    ifSqlNodes.add(new IfSqlNode(betweenValueSqlNode, "criterion.betweenValue"));

    List<SqlNode> listSqlNode = new ArrayList<SqlNode>();
    listSqlNode.add(new TextSqlNode(" ${criterion.condition} "));
    SqlNode listItemNode = new TextSqlNode(" #{listItem} ");
    SqlNode foreachSqlNode3 = new ForEachSqlNode(ms.getConfiguration(), listItemNode, "criterion.value", null,
            "listItem", " (", ") ", ",");
    listSqlNode.add(foreachSqlNode3);
    ifSqlNodes.add(new IfSqlNode(new MixedSqlNode(listSqlNode), "criterion.listValue"));

    SqlNode chooseSqlNode = new ChooseSqlNode(ifSqlNodes, null);
    SqlNode foreachSqlNode2 = new ForEachSqlNode(ms.getConfiguration(), chooseSqlNode, "criteria.criteria",
            null, "criterion", null, null, "AND");
    SqlNode trimSqlNode = new TrimSqlNode(ms.getConfiguration(), foreachSqlNode2, " (", "AND", ") ",
            (String) null);
    SqlNode iftestSqlNode = new IfSqlNode(trimSqlNode, "criteria.valid");
    SqlNode foreachSqlNode1 = new ForEachSqlNode(ms.getConfiguration(), iftestSqlNode, "oredCriteria", null,
            "criteria", null, null, "OR");

    return foreachSqlNode1;
}

From source file:com.cheyipai.platformservice.thirdparty.core.pager.PageHelper.java

License:Open Source License

/**
 * ?sqlSource/*from w ww  .  ja va2 s  . co m*/
 *
 * @param ms
 * @param newSqlSource
 * @param suffix
 * @return
 */
private SqlSource getNewSqlSource(MappedStatement ms, BoundSqlSqlSource newSqlSource, String suffix) {
    SqlSource sqlSource = ms.getSqlSource();
    //XMLLanguageDriver.javaXMLScriptBuilder.java???SqlSource
    if (sqlSource instanceof DynamicSqlSource) {
        MetaObject msObject = forObject(ms);
        List<SqlNode> contents = (List<SqlNode>) msObject.getValue(SQL_NODES);
        List<SqlNode> newSqlNodes = new ArrayList<SqlNode>(contents.size() + 2);
        //?
        if (suffix == SUFFIX_PAGE) {
            newSqlNodes.add(new TextSqlNode(getPageSqlBefore()));
            newSqlNodes.addAll(contents);
            newSqlNodes.add(new TextSqlNode(getPageSqlAfter()));
            return new MyDynamicSqlSource(ms.getConfiguration(), new MixedSqlNode(newSqlNodes));
        } else {
            newSqlNodes.add(new TextSqlNode(getCountSqlBefore()));
            newSqlNodes.addAll(contents);
            newSqlNodes.add(new TextSqlNode(getCountSqlAfter()));
            return new DynamicSqlSource(ms.getConfiguration(), new MixedSqlNode(newSqlNodes));
        }
    } else {
        //RawSqlSource
        //?
        if (suffix == SUFFIX_PAGE) {
            //sql
            MetaObject sqlObject = forObject(newSqlSource);
            sqlObject.setValue(BOUND_SQL, getPageSql((String) sqlObject.getValue(BOUND_SQL)));
            //?
            List<ParameterMapping> newParameterMappings = new ArrayList<ParameterMapping>();
            newParameterMappings.addAll(newSqlSource.getBoundSql().getParameterMappings());
            newParameterMappings
                    .add(new ParameterMapping.Builder(ms.getConfiguration(), PAGEPARAMETER_FIRST, Integer.class)
                            .build());
            newParameterMappings.add(
                    new ParameterMapping.Builder(ms.getConfiguration(), PAGEPARAMETER_SECOND, Integer.class)
                            .build());
            sqlObject.setValue("boundSql.parameterMappings", newParameterMappings);
        } else {
            //count sql
            MetaObject sqlObject = forObject(newSqlSource);
            sqlObject.setValue(BOUND_SQL, getCountSql((String) sqlObject.getValue(BOUND_SQL)));
        }
        return newSqlSource;
    }
}

From source file:com.dingding.utils.page.SqlUtil.java

License:Open Source License

/**
 * ?sqlSource/*from ww  w .j  av  a 2s  .  c  o m*/
 *
 * @param ms
 * @param newSqlSource
 * @param suffix
 * @return
 */
private SqlSource getNewSqlSource(MappedStatement ms, BoundSqlSqlSource newSqlSource, String suffix) {
    SqlSource sqlSource = ms.getSqlSource();
    //XMLLanguageDriver.javaXMLScriptBuilder.java???SqlSource
    if (sqlSource instanceof DynamicSqlSource) {
        MetaObject msObject = forObject(ms);
        List<SqlNode> contents = (List<SqlNode>) msObject.getValue(SQL_NODES);
        List<SqlNode> newSqlNodes = new ArrayList<SqlNode>(contents.size() + 2);
        //?
        if (suffix == SUFFIX_PAGE) {
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getPageSqlBefore()));
            newSqlNodes.addAll(contents);
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getPageSqlAfter()));
            return new MyDynamicSqlSource(ms.getConfiguration(), new MixedSqlNode(newSqlNodes), false);
        } else {
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getCountSqlBefore()));
            newSqlNodes.addAll(contents);
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getCountSqlAfter()));
            return new MyDynamicSqlSource(ms.getConfiguration(), new MixedSqlNode(newSqlNodes), true);
        }
    } else {
        //RawSqlSource
        //?
        if (suffix == SUFFIX_PAGE) {
            //sql
            MetaObject sqlObject = forObject(newSqlSource);
            sqlObject.setValue(BOUND_SQL, SQLPARSER.getPageSql((String) sqlObject.getValue(BOUND_SQL)));
            //?
            List<ParameterMapping> newParameterMappings = new ArrayList<ParameterMapping>();
            newParameterMappings.addAll(newSqlSource.getBoundSql().getParameterMappings());
            newParameterMappings
                    .add(new ParameterMapping.Builder(ms.getConfiguration(), PAGEPARAMETER_FIRST, Integer.class)
                            .build());
            newParameterMappings.add(
                    new ParameterMapping.Builder(ms.getConfiguration(), PAGEPARAMETER_SECOND, Integer.class)
                            .build());
            sqlObject.setValue("boundSql.parameterMappings", newParameterMappings);
        } else {
            //count sql
            MetaObject sqlObject = forObject(newSqlSource);
            sqlObject.setValue(BOUND_SQL, SQLPARSER.getCountSql((String) sqlObject.getValue(BOUND_SQL)));
        }
        return newSqlSource;
    }
}

From source file:com.github.abel533.mapperhelper.MapperTemplate.java

License:Open Source License

public IfSqlNode ExampleValidSqlNode(Configuration configuration) {
    List<SqlNode> whenSqlNodes = new ArrayList<SqlNode>();
    IfSqlNode noValueSqlNode = new IfSqlNode(new TextSqlNode("and ${criterion.condition}"),
            "criterion.noValue");
    whenSqlNodes.add(noValueSqlNode);/*from  w  ww. j a v  a 2  s. c  om*/
    IfSqlNode singleValueSqlNode = new IfSqlNode(
            new TextSqlNode("and ${criterion.condition} #{criterion.value}"), "criterion.singleValue");
    whenSqlNodes.add(singleValueSqlNode);
    IfSqlNode betweenValueSqlNode = new IfSqlNode(
            new TextSqlNode("and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}"),
            "criterion.betweenValue");
    whenSqlNodes.add(betweenValueSqlNode);

    List<SqlNode> listValueContentSqlNodes = new ArrayList<SqlNode>();
    listValueContentSqlNodes.add(new TextSqlNode("and ${criterion.condition}"));
    ForEachSqlNode listValueForEachSqlNode = new ForEachSqlNode(configuration,
            new StaticTextSqlNode("#{listItem}"), "criterion.value", null, "listItem", "(", ")", ",");
    listValueContentSqlNodes.add(listValueForEachSqlNode);
    IfSqlNode listValueSqlNode = new IfSqlNode(new MixedSqlNode(listValueContentSqlNodes),
            "criterion.listValue");
    whenSqlNodes.add(listValueSqlNode);

    ChooseSqlNode chooseSqlNode = new ChooseSqlNode(whenSqlNodes, null);

    ForEachSqlNode criteriaSqlNode = new ForEachSqlNode(configuration, chooseSqlNode, "criteria.criteria", null,
            "criterion", null, null, null);

    TrimSqlNode trimSqlNode = new TrimSqlNode(configuration, criteriaSqlNode, "(", "and", ")", null);
    IfSqlNode validSqlNode = new IfSqlNode(trimSqlNode, "criteria.valid");
    return validSqlNode;
}

From source file:com.hand.hap.mybatis.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * ??? - ????/*from   www  .  j a va2s. c o m*/
 *
 * @param entityClass
 * @return
 * @deprecated 4.x
 */
@Deprecated
protected SqlNode getDynamicTableNameNode(Class<?> entityClass) {
    if (IDynamicTableName.class.isAssignableFrom(entityClass)) {
        List<SqlNode> ifSqlNodes = new ArrayList<SqlNode>();
        ifSqlNodes.add(new IfSqlNode(new TextSqlNode("${dynamicTableName}"),
                "@OGNL@isDynamicParameter(_parameter) and dynamicTableName != null and dynamicTableName != ''"));
        ifSqlNodes.add(new IfSqlNode(new StaticTextSqlNode(tableName(entityClass)),
                "@OGNL@isNotDynamicParameter(_parameter) or dynamicTableName == null or dynamicTableName == ''"));
        return new MixedSqlNode(ifSqlNodes);
    } else {
        return new StaticTextSqlNode(tableName(entityClass));
    }
}

From source file:com.hand.hap.mybatis.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * ??? - ?????parameterName?@Param/*from  w ww . j av a 2  s .c  o  m*/
 *
 * @param entityClass
 * @param parameterName
 * @return
 * @deprecated 4.x
 */
@Deprecated
protected SqlNode getDynamicTableNameNode(Class<?> entityClass, String parameterName) {
    if (IDynamicTableName.class.isAssignableFrom(entityClass)) {
        List<SqlNode> ifSqlNodes = new ArrayList<SqlNode>();
        ifSqlNodes.add(new IfSqlNode(new TextSqlNode("${" + parameterName + ".dynamicTableName}"),
                "@OGNL@isDynamicParameter(" + parameterName + ") and " + parameterName
                        + ".dynamicTableName != null and  " + parameterName + ".dynamicTableName != ''"));
        ifSqlNodes.add(new IfSqlNode(new StaticTextSqlNode(tableName(entityClass)),
                "@OGNL@isNotDynamicParameter(" + parameterName + ") or " + parameterName
                        + ".dynamicTableName == null or " + parameterName + ".dynamicTableName == ''"));
        return new MixedSqlNode(ifSqlNodes);
    } else {
        return new StaticTextSqlNode(tableName(entityClass));
    }
}

From source file:com.hand.hap.mybatis.mapperhelper.MapperTemplate.java

License:Open Source License

@Deprecated
public IfSqlNode ExampleValidSqlNode(Configuration configuration) {
    List<SqlNode> whenSqlNodes = new ArrayList<SqlNode>();
    IfSqlNode noValueSqlNode = new IfSqlNode(new TextSqlNode(" and ${criterion.condition}"),
            "criterion.noValue");
    whenSqlNodes.add(noValueSqlNode);/* www . j  a  va2s  . com*/
    IfSqlNode singleValueSqlNode = new IfSqlNode(
            new TextSqlNode(" and ${criterion.condition} #{criterion.value}"), "criterion.singleValue");
    whenSqlNodes.add(singleValueSqlNode);
    IfSqlNode betweenValueSqlNode = new IfSqlNode(
            new TextSqlNode(" and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}"),
            "criterion.betweenValue");
    whenSqlNodes.add(betweenValueSqlNode);

    List<SqlNode> listValueContentSqlNodes = new ArrayList<SqlNode>();
    listValueContentSqlNodes.add(new TextSqlNode(" and ${criterion.condition}"));
    ForEachSqlNode listValueForEachSqlNode = new ForEachSqlNode(configuration,
            new StaticTextSqlNode("#{listItem}"), "criterion.value", null, "listItem", "(", ")", ",");
    listValueContentSqlNodes.add(listValueForEachSqlNode);
    IfSqlNode listValueSqlNode = new IfSqlNode(new MixedSqlNode(listValueContentSqlNodes),
            "criterion.listValue");
    whenSqlNodes.add(listValueSqlNode);

    ChooseSqlNode chooseSqlNode = new ChooseSqlNode(whenSqlNodes, null);

    ForEachSqlNode criteriaSqlNode = new ForEachSqlNode(configuration, chooseSqlNode, "criteria.criteria", null,
            "criterion", null, null, null);

    TrimSqlNode trimSqlNode = new TrimSqlNode(configuration, criteriaSqlNode, "(", "and", ")", null);
    IfSqlNode validSqlNode = new IfSqlNode(trimSqlNode, "criteria.valid");
    return validSqlNode;
}

From source file:com.jdonee.framework.util.pagehelper.SqlUtil.java

License:Open Source License

/**
 * ?sqlSource// w w  w  .  ja v  a2s. com
 *
 * @param ms
 * @param newSqlSource
 * @param suffix
 * @return
 */
private SqlSource getNewSqlSource(MappedStatement ms, BoundSqlSqlSource newSqlSource, String suffix) {
    SqlSource sqlSource = ms.getSqlSource();
    // XMLLanguageDriver.javaXMLScriptBuilder.java???SqlSource
    if (sqlSource instanceof DynamicSqlSource) {
        MetaObject msObject = forObject(ms);
        List<SqlNode> contents = (List<SqlNode>) msObject.getValue(SQL_NODES);
        List<SqlNode> newSqlNodes = new ArrayList<SqlNode>(contents.size() + 2);
        // ?
        if (suffix == SUFFIX_PAGE) {
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getPageSqlBefore()));
            newSqlNodes.addAll(contents);
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getPageSqlAfter()));
            return new MyDynamicSqlSource(ms.getConfiguration(), new MixedSqlNode(newSqlNodes), false);
        } else {
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getCountSqlBefore()));
            newSqlNodes.addAll(contents);
            newSqlNodes.add(new TextSqlNode(SQLPARSER.getCountSqlAfter()));
            return new MyDynamicSqlSource(ms.getConfiguration(), new MixedSqlNode(newSqlNodes), true);
        }
    } else {
        // RawSqlSource
        // ?
        if (suffix == SUFFIX_PAGE) {
            // sql
            MetaObject sqlObject = forObject(newSqlSource);
            sqlObject.setValue(BOUND_SQL, SQLPARSER.getPageSql((String) sqlObject.getValue(BOUND_SQL)));
            // ?
            List<ParameterMapping> newParameterMappings = new ArrayList<ParameterMapping>();
            newParameterMappings.addAll(newSqlSource.getBoundSql().getParameterMappings());
            newParameterMappings
                    .add(new ParameterMapping.Builder(ms.getConfiguration(), PAGEPARAMETER_FIRST, Integer.class)
                            .build());
            newParameterMappings.add(
                    new ParameterMapping.Builder(ms.getConfiguration(), PAGEPARAMETER_SECOND, Integer.class)
                            .build());
            sqlObject.setValue("boundSql.parameterMappings", newParameterMappings);
        } else {
            // count sql
            MetaObject sqlObject = forObject(newSqlSource);
            sqlObject.setValue(BOUND_SQL, SQLPARSER.getCountSql((String) sqlObject.getValue(BOUND_SQL)));
        }
        return newSqlSource;
    }
}

From source file:com.noasking.mapper.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * ??? - ????// w w  w  . ja v  a 2s .c  o  m
 *
 * @param entityClass
 * @return
 * @deprecated 4.x
 */
@Deprecated
protected SqlNode getDynamicTableNameNode(Class<?> entityClass) {
    if (IDynamicTableName.class.isAssignableFrom(entityClass)) {
        List<SqlNode> ifSqlNodes = new ArrayList<SqlNode>();
        ifSqlNodes.add(new IfSqlNode(new TextSqlNode("${dynamicTableName}"),
                "@com.noasking.mapper.util.OGNL@isDynamicParameter(_parameter) and dynamicTableName != null and dynamicTableName != ''"));
        ifSqlNodes.add(new IfSqlNode(new StaticTextSqlNode(tableName(entityClass)),
                "@com.noasking.mapper.util.OGNL@isNotDynamicParameter(_parameter) or dynamicTableName == null or dynamicTableName == ''"));
        return new MixedSqlNode(ifSqlNodes);
    } else {
        return new StaticTextSqlNode(tableName(entityClass));
    }
}