List of usage examples for org.apache.ibatis.scripting.xmltags StaticTextSqlNode StaticTextSqlNode
public StaticTextSqlNode(String text)
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)); } }