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

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

Introduction

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

Prototype

public StaticTextSqlNode(String text) 

Source Link

Usage

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

License:Open Source License

/**
 * ? <code>[AND] column = #{property}</code>
 * //  ww w  . j  a  v a 2s. co  m
 * @param column
 * @param first
 * @return
 */
protected SqlNode getColumnEqualsProperty(EntityHelper.EntityColumn column, boolean first) {
    return new StaticTextSqlNode(
            (first ? "" : " AND ") + column.getColumn() + " = #{" + column.getProperty() + "} ");
}

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

License:Open Source License

/**
 * ??/*  w  ww . jav a  2  s.c om*/
 * 
 * @param entityClass
 * @return
 */
protected SqlNode getOrderByColumnNode(Class<?> entityClass) {
    // ??
    List<EntityHelper.EntityColumn> columnList = EntityHelper.getOrderByColumns(entityClass);
    boolean first = true;
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    for (EntityHelper.EntityColumn column : columnList) {
        SqlNode sqlNode = new StaticTextSqlNode(
                (first ? "" : ",  ") + column.getColumn() + " " + column.getOrderBy());
        sqlNodes.add(sqlNode);
        first = false;
    }
    return new MixedSqlNode(sqlNodes);
}

From source file:com.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * // w  ww.  ja v a2  s .  c o m
 *
 * @param ms
 * @return
 */
public SqlNode select(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    //
    setResultType(ms, entityClass);
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    //??sql:select column ... from table
    sqlNodes.add(new StaticTextSqlNode(
            "SELECT " + EntityHelper.getSelectColumns(entityClass) + " FROM " + tableName(entityClass)));
    //if<where>
    sqlNodes.add(new WhereSqlNode(ms.getConfiguration(), getAllIfColumnNode(entityClass)));
    return new MixedSqlNode(sqlNodes);
}

From source file:com.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * //from   ww  w . j  ava2s.  c o  m
 *
 * @param ms
 * @return
 */
public SqlNode selectCount(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    //select count(*) from table
    sqlNodes.add(new StaticTextSqlNode("SELECT COUNT(*) FROM " + tableName(entityClass)));
    //?where,if?
    sqlNodes.add(new WhereSqlNode(ms.getConfiguration(), getAllIfColumnNode(entityClass)));
    return new MixedSqlNode(sqlNodes);
}

From source file:com.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * ?//from   w  ww. j  ava  2  s .c  om
 *
 * @param ms
 * @return
 */
public SqlNode insert(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    //insert into table
    sqlNodes.add(new StaticTextSqlNode("INSERT INTO " + tableName(entityClass)));
    //?
    List<EntityHelper.EntityColumn> columnList = EntityHelper.getColumns(entityClass);
    //Identity?
    Boolean hasIdentityKey = false;
    //?
    for (EntityHelper.EntityColumn column : columnList) {
        //?sql????
        if (column.getSequenceName() != null && column.getSequenceName().length() > 0) {
        } else if (column.isIdentity()) {
            //Identity??selectKey
            //?Identity
            if (hasIdentityKey) {
                throw new RuntimeException(ms.getId() + "" + entityClass.getCanonicalName()
                        + "?MySql,?!");
            }
            //?selectKey
            newSelectKeyMappedStatement(ms, column);
            hasIdentityKey = true;
            //?,,??,?
            //bind
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_cache", column.getProperty()));
        } else if (column.isUuid()) {
            //uuid?bind
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_bind", getUUID()));
        }
    }
    //?(??,??...)
    sqlNodes.add(new StaticTextSqlNode("(" + EntityHelper.getAllColumns(entityClass) + ")"));
    List<SqlNode> ifNodes = new ArrayList<SqlNode>();
    //?values(,...)
    for (EntityHelper.EntityColumn column : columnList) {
        //,property!=null
        //,,property_cache,??
        if (column.isIdentity()) {
            ifNodes.add(getIfCacheNotNull(column,
                    new StaticTextSqlNode("#{" + column.getProperty() + "_cache },")));
        } else {
            //?property
            ifNodes.add(getIfNotNull(column, new StaticTextSqlNode("#{" + column.getProperty() + "},")));
        }
        //null??null
        //?
        if (column.getSequenceName() != null && column.getSequenceName().length() > 0) {
            ifNodes.add(getIfIsNull(column, new StaticTextSqlNode(getSeqNextVal(column) + " ,")));
        } else if (column.isIdentity()) {
            ifNodes.add(getIfCacheIsNull(column, new StaticTextSqlNode("#{" + column.getProperty() + " },")));
        } else if (column.isUuid()) {
            ifNodes.add(getIfIsNull(column, new StaticTextSqlNode("#{" + column.getProperty() + "_bind },")));
        } else {
            //null?jdbcTypeoracle?VARCHAR??
            ifNodes.add(getIfIsNull(column,
                    new StaticTextSqlNode("#{" + column.getProperty() + ",jdbcType=VARCHAR},")));
        }
    }
    //values(#{property},#{property}...)
    sqlNodes.add(new TrimSqlNode(ms.getConfiguration(), new MixedSqlNode(ifNodes), "VALUES (", null, ")", ","));
    return new MixedSqlNode(sqlNodes);
}

From source file:com.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * ??null/*from   ww  w  .j  av a 2s  . com*/
 *
 * @param ms
 * @return
 */
public SqlNode insertSelective(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    //insert into table
    sqlNodes.add(new StaticTextSqlNode("INSERT INTO " + tableName(entityClass)));
    //?
    List<EntityHelper.EntityColumn> columnList = EntityHelper.getColumns(entityClass);
    List<SqlNode> ifNodes = new ArrayList<SqlNode>();
    //Identity?
    Boolean hasIdentityKey = false;
    //??????
    for (EntityHelper.EntityColumn column : columnList) {
        //?
        if (column.getSequenceName() != null && column.getSequenceName().length() > 0) {
            //
            ifNodes.add(new StaticTextSqlNode(column.getColumn() + ","));
        } else if (column.isIdentity()) {
            if (hasIdentityKey) {
                throw new RuntimeException(ms.getId() + "" + entityClass.getCanonicalName()
                        + "?MySql,?!");
            }
            //selectKey-MS
            newSelectKeyMappedStatement(ms, column);
            hasIdentityKey = true;
            //
            ifNodes.add(new StaticTextSqlNode(column.getColumn() + ","));
            //?,,??,?
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_cache", column.getProperty()));
        } else if (column.isUuid()) {
            //UUIDbind
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_bind", getUUID()));
            ifNodes.add(new StaticTextSqlNode(column.getColumn() + ","));
        } else {
            ifNodes.add(getIfNotNull(column, new StaticTextSqlNode(column.getColumn() + ",")));
        }
    }
    //?sqlNodes
    sqlNodes.add(new TrimSqlNode(ms.getConfiguration(), new MixedSqlNode(ifNodes), "(", null, ")", ","));

    ifNodes = new ArrayList<SqlNode>();
    //?values(#{property},#{property}...)
    for (EntityHelper.EntityColumn column : columnList) {
        //??,
        //,,property_cache
        if (column.isIdentity()) {
            ifNodes.add(new IfSqlNode(new StaticTextSqlNode("#{" + column.getProperty() + "_cache },"),
                    column.getProperty() + "_cache != null "));
        } else {
            ifNodes.add(new IfSqlNode(new StaticTextSqlNode("#{" + column.getProperty() + "},"),
                    column.getProperty() + " != null "));
        }
        if (column.getSequenceName() != null && column.getSequenceName().length() > 0) {
            ifNodes.add(getIfIsNull(column, new StaticTextSqlNode(getSeqNextVal(column) + " ,")));
        } else if (column.isIdentity()) {
            ifNodes.add(getIfCacheIsNull(column, new StaticTextSqlNode("#{" + column.getProperty() + " },")));
        } else if (column.isUuid()) {
            ifNodes.add(getIfIsNull(column, new StaticTextSqlNode("#{" + column.getProperty() + "_bind },")));
        }
    }
    //values(#{property},#{property}...)
    sqlNodes.add(new TrimSqlNode(ms.getConfiguration(), new MixedSqlNode(ifNodes), "VALUES (", null, ")", ","));
    return new MixedSqlNode(sqlNodes);
}

From source file:com.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * ?//from  w  w w  .j a v a  2  s . co  m
 *
 * @param ms
 * @return
 */
public SqlNode delete(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    //delete from table
    sqlNodes.add(new StaticTextSqlNode("DELETE FROM " + tableName(entityClass)));
    //where/if?
    sqlNodes.add(new WhereSqlNode(ms.getConfiguration(), getAllIfColumnNode(entityClass)));
    return new MixedSqlNode(sqlNodes);
}

From source file:com.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * ?null//from w  w w  . java  2  s.  c  om
 *
 * @param ms
 * @return
 */
public SqlNode updateByPrimaryKeySelective(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new ArrayList<SqlNode>();
    //update table
    sqlNodes.add(new StaticTextSqlNode("UPDATE " + tableName(entityClass)));
    //?
    List<EntityHelper.EntityColumn> columnList = EntityHelper.getColumns(entityClass);
    List<SqlNode> ifNodes = new ArrayList<SqlNode>();
    //if property!=null and property!=''
    for (EntityHelper.EntityColumn column : columnList) {
        StaticTextSqlNode columnNode = new StaticTextSqlNode(
                column.getColumn() + " = #{" + column.getProperty() + "}, ");
        ifNodes.add(getIfNotNull(column, columnNode));
    }
    sqlNodes.add(new SetSqlNode(ms.getConfiguration(), new MixedSqlNode(ifNodes)));
    //?
    columnList = EntityHelper.getPKColumns(entityClass);
    List<SqlNode> whereNodes = new ArrayList<SqlNode>();
    boolean first = true;
    //where =#{property} ?
    for (EntityHelper.EntityColumn column : columnList) {
        whereNodes.add(getColumnEqualsProperty(column, first));
        first = false;
    }
    sqlNodes.add(new WhereSqlNode(ms.getConfiguration(), new MixedSqlNode(whereNodes)));
    return new MixedSqlNode(sqlNodes);
}

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 w  w.j av a  2 s  .  co  m*/
    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  ww  w .ja va 2s  .co  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));
    }
}