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

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

Introduction

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

Prototype

public IfSqlNode(SqlNode contents, String test) 

Source Link

Usage

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

License:Open Source License

/**
 * if?sqlNode/*from ww  w .j  a va 2 s .  c om*/
 * <p>
 * <code>&lt;if test="property!=null"&gt;columnNode&lt;/if&gt;</code>
 * </p>
 * 
 * @param column
 * @param columnNode
 * @param empty
 *            ??!=''?
 * @return
 */
protected SqlNode getIfNotNull(EntityHelper.EntityColumn column, SqlNode columnNode, boolean empty) {
    return new IfSqlNode(columnNode,
            column.getProperty() + " != null " + (empty ? " and " + column.getProperty() + " != ''" : ""));
}

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

License:Open Source License

/**
 * if?sqlNode//from  ww w .java 2  s  . c o m
 * <p>
 * <code>&lt;if test="property==null"&gt;columnNode&lt;/if&gt;</code>
 * </p>
 * 
 * @param column
 * @return
 */
protected SqlNode getIfIsNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    return new IfSqlNode(columnNode, column.getProperty() + " == null ");
}

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

License:Open Source License

/**
 * if?sqlNode/*from w  w w. jav a 2 s. c om*/
 * <p>
 * <code>&lt;if test="property!=null"&gt;columnNode&lt;/if&gt;</code>
 * </p>
 * 
 * @param column
 * @return
 */
protected SqlNode getIfCacheNotNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    return new IfSqlNode(columnNode, column.getProperty() + "_cache != null ");
}

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

License:Open Source License

/**
 * if?sqlNode/*w  ww . j  ava2 s  . c  o m*/
 * <p>
 * 
 * <code>&lt;if test="property_cache!=null"&gt;columnNode&lt;/if&gt;</code>
 * </p>
 * 
 * @param column
 * @return
 */
protected SqlNode getIfCacheIsNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    return new IfSqlNode(columnNode, column.getProperty() + "_cache == null ");
}

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

License:Open Source License

/**
 * create criteria from baseExample/*from  www  .java  2s.c  om*/
 * 
 * @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.github.abel533.mapper.MapperProvider.java

License:Open Source License

/**
 * ??null//from w w w. j a v a 2s.c  o m
 *
 * @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.MapperTemplate.java

License:Open Source License

/**
 * if?sqlNode//ww  w  .ja v a  2s.c  o  m
 * <p><code>&lt;if test="property!=null"&gt;columnNode&lt;/if&gt;</code></p>
 * <p>String<code>&lt;if test="property!=null and property!=''"&gt;columnNode&lt;/if&gt;</code></p>
 *
 * @param column
 * @return
 */
protected SqlNode getIfNotNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    if (column.getJavaType().equals(String.class)) {
        return new IfSqlNode(columnNode,
                column.getProperty() + " != null and " + column.getProperty() + " != '' ");
    }
    return new IfSqlNode(columnNode, column.getProperty() + " != null ");
}

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

License:Open Source License

/**
 * if?sqlNode/* ww  w .  j  av  a  2 s . co m*/
 * <p><code>&lt;if test="property==null"&gt;columnNode&lt;/if&gt;</code></p>
 * <p>String<code>&lt;if test="property==null or property==''"&gt;columnNode&lt;/if&gt;</code></p>
 *
 * @param column
 * @return
 */
protected SqlNode getIfIsNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    if (column.getJavaType().equals(String.class)) {
        return new IfSqlNode(columnNode,
                column.getProperty() + " == null or " + column.getProperty() + " == '' ");
    }
    return new IfSqlNode(columnNode, column.getProperty() + " == null ");
}

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

License:Open Source License

/**
 * if?sqlNode// w ww.j av  a 2 s . c  o  m
 * <p><code>&lt;if test="property!=null"&gt;columnNode&lt;/if&gt;</code></p>
 * <p>String<code>&lt;if test="property!=null and property!=''"&gt;columnNode&lt;/if&gt;</code></p>
 *
 * @param column
 * @return
 */
protected SqlNode getIfCacheNotNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    if (column.getJavaType().equals(String.class)) {
        return new IfSqlNode(columnNode,
                column.getProperty() + "_cache != null and " + column.getProperty() + "_cache != '' ");
    }
    return new IfSqlNode(columnNode, column.getProperty() + "_cache != null ");
}

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

License:Open Source License

/**
 * if?sqlNode/*  w w w . j  a v  a  2s  . c  om*/
 * <p><code>&lt;if test="property_cache!=null"&gt;columnNode&lt;/if&gt;</code></p>
 * <p>String<code>&lt;if test="property_cache!=null and property_cache!=''"&gt;columnNode&lt;/if&gt;</code></p>
 *
 * @param column
 * @return
 */
protected SqlNode getIfCacheIsNull(EntityHelper.EntityColumn column, SqlNode columnNode) {
    if (column.getJavaType().equals(String.class)) {
        return new IfSqlNode(columnNode,
                column.getProperty() + "_cache == null or " + column.getProperty() + "_cache == '' ");
    }
    return new IfSqlNode(columnNode, column.getProperty() + "_cache == null ");
}