List of usage examples for org.apache.ibatis.mapping MappedStatement getConfiguration
public Configuration getConfiguration()
From source file:SqlUtil.java
License:Open Source License
/** * ?ms - ms???/* ww w. j av a 2 s .co m*/ * * @param ms * @param boundSql * @param suffix * @return */ private MappedStatement getMappedStatement(MappedStatement ms, BoundSql boundSql, String suffix) { MappedStatement qs = null; try { qs = ms.getConfiguration().getMappedStatement(ms.getId() + suffix); } catch (Exception e) { //ignore } if (qs == null) { //MappedStatement qs = newMappedStatement(ms, getNewSqlSource(ms, new BoundSqlSqlSource(boundSql), suffix), suffix); try { ms.getConfiguration().addMappedStatement(qs); } catch (Exception e) { //ignore } } return qs; }
From source file:SqlUtil.java
License:Open Source License
/** * countMappedStatement//from ww w .j a va 2 s .c om * * @param ms * @param newSqlSource * @param suffix * @return */ private MappedStatement newMappedStatement(MappedStatement ms, SqlSource newSqlSource, String suffix) { String id = ms.getId() + suffix; MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), id, newSqlSource, ms.getSqlCommandType()); builder.resource(ms.getResource()); builder.fetchSize(ms.getFetchSize()); builder.statementType(ms.getStatementType()); builder.keyGenerator(ms.getKeyGenerator()); if (ms.getKeyProperties() != null && ms.getKeyProperties().length != 0) { StringBuilder keyProperties = new StringBuilder(); for (String keyProperty : ms.getKeyProperties()) { keyProperties.append(keyProperty).append(","); } keyProperties.delete(keyProperties.length() - 1, keyProperties.length()); builder.keyProperty(keyProperties.toString()); } builder.timeout(ms.getTimeout()); builder.parameterMap(ms.getParameterMap()); if (suffix == SUFFIX_PAGE) { builder.resultMaps(ms.getResultMaps()); } else { //countint List<ResultMap> resultMaps = new ArrayList<ResultMap>(); ResultMap resultMap = new ResultMap.Builder(ms.getConfiguration(), id, int.class, EMPTY_RESULTMAPPING) .build(); resultMaps.add(resultMap); builder.resultMaps(resultMaps); } builder.resultSetType(ms.getResultSetType()); builder.cache(ms.getCache()); builder.flushCacheRequired(ms.isFlushCacheRequired()); builder.useCache(ms.isUseCache()); return builder.build(); }
From source file:SqlUtil.java
License:Open Source License
/** * ?sqlSource//from ww w .j ava 2 s.com * * @param ms * @param newSqlSource * @param suffix * @return */ private SqlSource getNewSqlSource(MappedStatement ms, BoundSqlSqlSource newSqlSource, String suffix) { //XMLLanguageDriver.javaXMLScriptBuilder.java???SqlSource //?sql if (isDynamic(ms)) { MetaObject msObject = forObject(ms); SqlNode sqlNode = (SqlNode) msObject.getValue("sqlSource.rootSqlNode"); MixedSqlNode mixedSqlNode = null; if (sqlNode instanceof MixedSqlNode) { mixedSqlNode = (MixedSqlNode) sqlNode; } else { List<SqlNode> contents = new ArrayList<SqlNode>(1); contents.add(sqlNode); mixedSqlNode = new MixedSqlNode(contents); } return new MyDynamicSqlSource(ms.getConfiguration(), mixedSqlNode, suffix == SUFFIX_COUNT); } //??sql else if (suffix == SUFFIX_PAGE) { //sql return getPageSqlSource(ms.getConfiguration(), newSqlSource); } //??count-sql else { return getCountSqlSource(newSqlSource); } }
From source file:cn.com.bricks.mybatis.rbac.DynamicRbacInterceptor.java
@Override public Object intercept(Invocation invocation) throws Throwable { StatementHandler statementHandler = (StatementHandler) invocation.getTarget(); MetaObject metaStatementHandler = MetaObject.forObject(statementHandler, DEFAULT_OBJECT_FACTORY, DEFAULT_OBJECT_WRAPPER_FACTORY, DEFAULT_REFLECTOR_FACTORY); MappedStatement mappedStatement = (MappedStatement) metaStatementHandler .getValue("delegate.mappedStatement"); // ?sql/*www .ja v a 2s . c o m*/ BoundSql bsql = statementHandler.getBoundSql(); // ?sql TextSqlNode sqlNode = new TextSqlNode(bsql.getSql()); BoundSql nbsql = getBoundSql(mappedStatement.getConfiguration(), bsql.getParameterObject(), sqlNode); // ?sql? metaStatementHandler.setValue("delegate.boundSql.sql", nbsql.getSql()); return invocation.proceed(); }
From source file:cn.myblog.uitl.MybatisPageHelper.PageHelper.java
License:Open Source License
/** * MappedStatement?????//from www . ja v a2 s . c o m * * @param ms * @param newSqlSource * @return */ private MappedStatement newMappedStatement(MappedStatement ms, SqlSource newSqlSource) { MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), ms.getId() + "_", newSqlSource, ms.getSqlCommandType()); builder.resource(ms.getResource()); builder.fetchSize(ms.getFetchSize()); builder.statementType(ms.getStatementType()); builder.keyGenerator(ms.getKeyGenerator()); if (ms.getKeyProperties() != null && ms.getKeyProperties().length != 0) { StringBuffer keyProperties = new StringBuffer(); for (String keyProperty : ms.getKeyProperties()) { keyProperties.append(keyProperty).append(","); } keyProperties.delete(keyProperties.length() - 1, keyProperties.length()); builder.keyProperty(keyProperties.toString()); } builder.timeout(ms.getTimeout()); builder.parameterMap(ms.getParameterMap()); //resultMaps?int??resultMap - ? List<ResultMap> resultMaps = new ArrayList<ResultMap>(); ResultMap resultMap = new ResultMap.Builder(ms.getConfiguration(), ms.getId(), int.class, EMPTY_RESULTMAPPING).build(); resultMaps.add(resultMap); builder.resultMaps(resultMaps); builder.resultSetType(ms.getResultSetType()); builder.cache(ms.getCache()); builder.flushCacheRequired(ms.isFlushCacheRequired()); builder.useCache(ms.isUseCache()); return builder.build(); }
From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java
License:Open Source License
/** * ?SqlSource/* w ww. ja v a 2s.com*/ * * @param ms * @throws java.lang.reflect.InvocationTargetException * @throws IllegalAccessException */ public void setSqlSource(MappedStatement ms) throws Exception { if (this.mapperClass == getMapperClass(ms.getId())) { if (mapperHelper.isSpring4()) { return; } else if (mapperHelper.isSpring()) { throw new RuntimeException("Spring4.x.x ??," + "?Spring" + mapperHelper.getSpringVersion() + ",?," + "?MapperScannerConfigurer,????Mapper?," + "??Mybatisxml?<mappers>Mapper?."); } else { throw new RuntimeException( "??Mybatisxml?<mappers>Mapper?."); } } Method method = methodMap.get(getMethodName(ms)); try { if (method.getReturnType() == Void.TYPE) { method.invoke(this, ms); } else if (SqlNode.class.isAssignableFrom(method.getReturnType())) { SqlNode sqlNode = (SqlNode) method.invoke(this, ms); DynamicSqlSource dynamicSqlSource = new DynamicSqlSource(ms.getConfiguration(), sqlNode); setSqlSource(ms, dynamicSqlSource); } else { throw new RuntimeException( "Mapper,?voidSqlNode!"); } } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e.getTargetException() != null ? e.getTargetException() : e); } }
From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java
License:Open Source License
/** * ??/*w ww .j a va2 s.c o m*/ * * @param ms * @return */ protected List<ParameterMapping> getPrimaryKeyParameterMappings(MappedStatement ms) { Class<?> entityClass = getSelectReturnType(ms); List<EntityHelper.EntityColumn> entityColumns = EntityHelper.getPKColumns(entityClass); List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>(); for (EntityHelper.EntityColumn column : entityColumns) { ParameterMapping.Builder builder = new ParameterMapping.Builder(ms.getConfiguration(), column.getProperty(), column.getJavaType()); builder.mode(ParameterMode.IN); parameterMappings.add(builder.build()); } return parameterMappings; }
From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java
License:Open Source License
/** * create criteria from baseExample//w w w .j a v a 2 s. c o 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:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java
License:Open Source License
/** * ??//from w w w.j a va 2s .c o m * * @param ms * @return */ protected List<ParameterMapping> getColumnParameterMappings(MappedStatement ms) { Class<?> entityClass = getSelectReturnType(ms); List<EntityHelper.EntityColumn> entityColumns = EntityHelper.getColumns(entityClass); List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>(); for (EntityHelper.EntityColumn column : entityColumns) { ParameterMapping.Builder builder = new ParameterMapping.Builder(ms.getConfiguration(), column.getProperty(), column.getJavaType()); builder.mode(ParameterMode.IN); parameterMappings.add(builder.build()); } return parameterMappings; }
From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java
License:Open Source License
/** * SelectKey - ?mysqlOracle?// w ww . ja va 2 s . c o m * * @param ms * @param column */ protected void newSelectKeyMappedStatement(MappedStatement ms, EntityHelper.EntityColumn column) { String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX; if (ms.getConfiguration().hasKeyGenerator(keyId)) { return; } Class<?> entityClass = getSelectReturnType(ms); // defaults Configuration configuration = ms.getConfiguration(); KeyGenerator keyGenerator = null; Boolean executeBefore = getBEFORE(); String IDENTITY = (column.getGenerator() == null || column.getGenerator().equals("")) ? getIDENTITY() : column.getGenerator(); if (IDENTITY.equalsIgnoreCase("JDBC")) { keyGenerator = new Jdbc3KeyGenerator(); } else { SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass); MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource, SqlCommandType.SELECT); statementBuilder.resource(ms.getResource()); statementBuilder.fetchSize(null); statementBuilder.statementType(StatementType.STATEMENT); statementBuilder.keyGenerator(new NoKeyGenerator()); statementBuilder.keyProperty(column.getProperty()); statementBuilder.keyColumn(null); statementBuilder.databaseId(null); statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance()); statementBuilder.resultOrdered(false); statementBuilder.resulSets(null); statementBuilder.timeout(configuration.getDefaultStatementTimeout()); List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>(); ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration, statementBuilder.id() + "-Inline", entityClass, parameterMappings); statementBuilder.parameterMap(inlineParameterMapBuilder.build()); List<ResultMap> resultMaps = new ArrayList<ResultMap>(); ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration, statementBuilder.id() + "-Inline", column.getJavaType(), new ArrayList<ResultMapping>(), null); resultMaps.add(inlineResultMapBuilder.build()); statementBuilder.resultMaps(resultMaps); statementBuilder.resultSetType(null); statementBuilder.flushCacheRequired(false); statementBuilder.useCache(false); statementBuilder.cache(null); MappedStatement statement = statementBuilder.build(); configuration.addMappedStatement(statement); MappedStatement keyStatement = configuration.getMappedStatement(keyId, false); keyGenerator = new SelectKeyGenerator(keyStatement, executeBefore); configuration.addKeyGenerator(keyId, keyGenerator); } // keyGenerator try { MetaObject msObject = forObject(ms); msObject.setValue("keyGenerator", keyGenerator); msObject.setValue("keyProperties", new String[] { column.getProperty() }); } catch (Exception e) { // ignore } }