List of usage examples for org.apache.ibatis.scripting.xmltags TrimSqlNode TrimSqlNode
protected TrimSqlNode(Configuration configuration, SqlNode contents, String prefix,
List<String> prefixesToOverride, String suffix, List<String> suffixesToOverride)
From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java
License:Open Source License
/** * create criteria from baseExample// w ww .j a v a2 s .co 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.github.abel533.mapper.MapperProvider.java
License:Open Source License
/** * ?/*w ww .ja v a 2 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//from w w w . ja va2s . 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.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 ww w . j av a2 s .c o 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
@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);/*from w w w . ja v a 2 s. c o 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.sxj.mybatis.orm.builder.GenericStatementBuilder.java
License:Open Source License
private SqlNode getBatchInsertFields(String collection) { List<SqlNode> contents = new ArrayList<SqlNode>(); for (Field field : columnFields) { List<SqlNode> sqlNodes = new ArrayList<SqlNode>(); Column column = field.getAnnotation(Column.class); if (Date.class.isAssignableFrom(field.getType()) && column != null && column.sysdate() == true) { sqlNodes.add(new TextSqlNode("now(),")); } else {/* ww w.ja v a2 s. c o m*/ sqlNodes.add(new TextSqlNode("#{item." + field.getName() + "},")); } contents.add(new MixedSqlNode(sqlNodes)); } TrimSqlNode fieldSqlNode = new TrimSqlNode(configuration, new MixedSqlNode(contents), " (", null, ")", ","); ForEachSqlNode forEachSqlNode = new ForEachSqlNode(configuration, fieldSqlNode, collection, "index", ITEM, "", "", ","); return new TrimSqlNode(configuration, forEachSqlNode, " VALUES ", null, "", ","); }
From source file:com.sxj.mybatis.orm.builder.GenericStatementBuilder.java
License:Open Source License
private SqlNode getInsertFileds() { List<SqlNode> contents = new ArrayList<SqlNode>(); for (Field field : columnFields) { List<SqlNode> sqlNodes = new ArrayList<SqlNode>(); Column column = field.getAnnotation(Column.class); if (Date.class.isAssignableFrom(field.getType()) && column != null && column.sysdate() == true) { sqlNodes.add(new TextSqlNode("now(),")); } else {//from w w w.j a va 2 s .c o m sqlNodes.add(new TextSqlNode("#{" + field.getName() + "},")); } contents.add(new IfSqlNode(new MixedSqlNode(sqlNodes), getTestByField(null, field))); } return new TrimSqlNode(configuration, new MixedSqlNode(contents), " VALUES (", null, ")", ","); }
From source file:com.sxj.mybatis.orm.builder.GenericStatementBuilder.java
License:Open Source License
private TrimSqlNode getBatchInsertColumns() { List<SqlNode> contents = new ArrayList<SqlNode>(); for (Field field : columnFields) { List<SqlNode> sqlNodes = new ArrayList<SqlNode>(); sqlNodes.add(new TextSqlNode(getColumnNameByField(field) + ",")); contents.add(new MixedSqlNode(sqlNodes)); }/* www.j a v a 2s . com*/ return new TrimSqlNode(configuration, new MixedSqlNode(contents), "(", null, ")", ","); }
From source file:com.sxj.mybatis.orm.builder.GenericStatementBuilder.java
License:Open Source License
private TrimSqlNode getInsertColumns() { List<SqlNode> contents = new ArrayList<SqlNode>(); for (Field field : columnFields) { List<SqlNode> sqlNodes = new ArrayList<SqlNode>(); sqlNodes.add(new TextSqlNode(getColumnNameByField(field) + ",")); contents.add(new IfSqlNode(new MixedSqlNode(sqlNodes), getTestByField(null, field))); }//from w w w . j ava 2 s . co m return new TrimSqlNode(configuration, new MixedSqlNode(contents), "(", null, ")", ","); }
From source file:message.mybatis.common.provider.MapperProvider.java
License:Open Source License
/** * ?null???//from www . j av a2s .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); }