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

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

Introduction

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

Prototype

public VarDeclSqlNode(String var, String exp) 

Source Link

Usage

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

License:Open Source License

/**
 * ?//from ww  w.  ja  v a2 s  . c o  m
 *
 * @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// ww  w  . jav a2  s  .co  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:message.mybatis.common.provider.MapperProvider.java

License:Open Source License

/**
 * ?null???//from w w w.  j  a  v a2  s.  c o  m
 *
 * @param ms
 * @return
 */
public SqlNode inert(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new LinkedList<SqlNode>();
    //insert into table
    sqlNodes.add(new StaticTextSqlNode("INSERT INTO " + tableName(entityClass)));
    //?
    Set<EntityHelper.EntityColumn> columnList = EntityHelper.getColumns(entityClass);
    List<SqlNode> ifNodes = new LinkedList<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()) {
            //?,,??,?
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_cache", column.getProperty()));
            if (hasIdentityKey) {
                //jdbc??
                if (column.getGenerator() != null && column.getGenerator().equals("JDBC")) {
                    continue;
                }
                throw new RuntimeException(ms.getId() + "" + entityClass.getCanonicalName()
                        + "?MySql,?!");
            }
            //selectKey-MS
            newSelectKeyMappedStatement(ms, column);
            hasIdentityKey = true;
            //
            ifNodes.add(new StaticTextSqlNode(column.getColumn() + ","));
        } 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 LinkedList<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:tk.mybatis.mapper.provider.MapperProvider.java

License:Open Source License

/**
 * ?/*  www .j a v  a2  s .co m*/
 *
 * @param ms
 * @return
 */
public SqlNode insert(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new LinkedList<SqlNode>();
    //insert into table
    sqlNodes.add(new StaticTextSqlNode("INSERT INTO " + tableName(entityClass)));
    //?
    Set<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()) {
            //?,,??,?
            //bind
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_cache", column.getProperty()));
            //Identity??selectKey
            //?Identity
            if (hasIdentityKey) {
                //jdbc??
                if (column.getGenerator() != null && column.getGenerator().equals("JDBC")) {
                    continue;
                }
                throw new RuntimeException(ms.getId() + "" + entityClass.getCanonicalName()
                        + "?MySql,?!");
            }
            //?selectKey
            newSelectKeyMappedStatement(ms, column);
            hasIdentityKey = true;
        } 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 LinkedList<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:tk.mybatis.mapper.provider.MapperProvider.java

License:Open Source License

/**
 * ??null//from ww  w.  ja v  a 2  s  . c  om
 *
 * @param ms
 * @return
 */
public SqlNode insertSelective(MappedStatement ms) {
    Class<?> entityClass = getSelectReturnType(ms);
    List<SqlNode> sqlNodes = new LinkedList<SqlNode>();
    //insert into table
    sqlNodes.add(new StaticTextSqlNode("INSERT INTO " + tableName(entityClass)));
    //?
    Set<EntityHelper.EntityColumn> columnList = EntityHelper.getColumns(entityClass);
    List<SqlNode> ifNodes = new LinkedList<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()) {
            //?,,??,?
            sqlNodes.add(new VarDeclSqlNode(column.getProperty() + "_cache", column.getProperty()));
            if (hasIdentityKey) {
                //jdbc??
                if (column.getGenerator() != null && column.getGenerator().equals("JDBC")) {
                    continue;
                }
                throw new RuntimeException(ms.getId() + "" + entityClass.getCanonicalName()
                        + "?MySql,?!");
            }
            //selectKey-MS
            newSelectKeyMappedStatement(ms, column);
            hasIdentityKey = true;
            //
            ifNodes.add(new StaticTextSqlNode(column.getColumn() + ","));
        } 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 LinkedList<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);
}