Java Code Examples for org.apache.ibatis.session.Configuration#hasStatement()
The following examples show how to use
org.apache.ibatis.session.Configuration#hasStatement() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MapperMethod.java From mybaties with Apache License 2.0 | 6 votes |
public SqlCommand(Configuration configuration, Class<?> mapperInterface, Method method) { String statementName = mapperInterface.getName() + "." + method.getName(); MappedStatement ms = null; if (configuration.hasStatement(statementName)) { ms = configuration.getMappedStatement(statementName); } else if (!mapperInterface.equals(method.getDeclaringClass().getName())) { // issue #35 //如果不是这个mapper接口的方法,再去查父类 String parentStatementName = method.getDeclaringClass().getName() + "." + method.getName(); if (configuration.hasStatement(parentStatementName)) { ms = configuration.getMappedStatement(parentStatementName); } } if (ms == null) { throw new BindingException("Invalid bound statement (not found): " + statementName); } name = ms.getId(); type = ms.getSqlCommandType(); if (type == SqlCommandType.UNKNOWN) { throw new BindingException("Unknown execution method for: " + name); } }
Example 2
Source File: MapperMethod.java From mybatis with Apache License 2.0 | 6 votes |
public SqlCommand(Configuration configuration, Class<?> mapperInterface, Method method) { String statementName = mapperInterface.getName() + "." + method.getName(); MappedStatement ms = null; if (configuration.hasStatement(statementName)) { ms = configuration.getMappedStatement(statementName); } else if (!mapperInterface.equals(method.getDeclaringClass().getName())) { // issue #35 //如果不是这个mapper接口的方法,再去查父类 String parentStatementName = method.getDeclaringClass().getName() + "." + method.getName(); if (configuration.hasStatement(parentStatementName)) { ms = configuration.getMappedStatement(parentStatementName); } } if (ms == null) { throw new BindingException("Invalid bound statement (not found): " + statementName); } name = ms.getId(); type = ms.getSqlCommandType(); if (type == SqlCommandType.UNKNOWN) { throw new BindingException("Unknown execution method for: " + name); } }
Example 3
Source File: PaginationHandler.java From azeroth with Apache License 2.0 | 4 votes |
/** * 新建count查询的MappedStatement * * @param ms * @return */ public MappedStatement getCountMappedStatement(MappedStatement ms) { String newMsId = ms.getId() + PAGE_COUNT_SUFFIX; MappedStatement statement = null; Configuration configuration = ms.getConfiguration(); try { statement = configuration.getMappedStatement(newMsId); if (statement != null) { return statement; } } catch (Exception e) { } synchronized (configuration) { if (configuration.hasStatement(newMsId)) { return configuration.getMappedStatement(newMsId); } MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), newMsId, ms.getSqlSource(), 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()); //count查询返回值int List<ResultMap> resultMaps = new ArrayList<ResultMap>(); String id = newMsId + "-Inline"; ResultMap resultMap = new ResultMap.Builder(configuration, id, Long.class, new ArrayList<ResultMapping>(0)).build(); resultMaps.add(resultMap); builder.resultMaps(resultMaps); builder.resultSetType(ms.getResultSetType()); builder.cache(ms.getCache()); builder.flushCacheRequired(ms.isFlushCacheRequired()); builder.useCache(ms.isUseCache()); statement = builder.build(); configuration.addMappedStatement(statement); return statement; } }
Example 4
Source File: CacheHandler.java From azeroth with Apache License 2.0 | 4 votes |
private MappedStatement getQueryIdsMappedStatementForUpdateCache(MappedStatement mt, EntityInfo entityInfo) { String msId = mt.getId() + QUERY_IDS_SUFFIX; MappedStatement statement = null; Configuration configuration = mt.getConfiguration(); try { statement = configuration.getMappedStatement(msId); if (statement != null) { return statement; } } catch (Exception e) { } synchronized (configuration) { if (configuration.hasStatement(msId)) { return configuration.getMappedStatement(msId); } String sql = entityInfo.getMapperSqls().get(mt.getId()); if (StringUtils.isNotBlank(sql)) { if (!sql.toLowerCase().contains(entityInfo.getTableName().toLowerCase())) { return null; } sql = "select " + entityInfo.getIdColumn() + " from " + entityInfo.getTableName() + " WHERE " + sql.split(WHERE_REGEX)[1]; sql = String.format(SqlTemplate.SCRIPT_TEMAPLATE, sql); } else { sql = PARSE_SQL_ERROR_DEFAULT; } SqlSource sqlSource = configuration.getDefaultScriptingLanguageInstance() .createSqlSource(configuration, sql, Object.class); MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, msId, sqlSource, SqlCommandType.SELECT); statementBuilder.resource(mt.getResource()); statementBuilder.fetchSize(mt.getFetchSize()); statementBuilder.statementType(mt.getStatementType()); statementBuilder.parameterMap(mt.getParameterMap()); statement = statementBuilder.build(); List<ResultMap> resultMaps = new ArrayList<ResultMap>(); String id = msId + "-Inline"; ResultMap.Builder builder = new ResultMap.Builder(configuration, id, entityInfo.getIdType(), new ArrayList<ResultMapping>(), true); resultMaps.add(builder.build()); MetaObject metaObject = SystemMetaObject.forObject(statement); metaObject.setValue("resultMaps", Collections.unmodifiableList(resultMaps)); configuration.addMappedStatement(statement); return statement; } }
Example 5
Source File: PaginationHandler.java From jeesuite-libs with Apache License 2.0 | 4 votes |
/** * 新建count查询的MappedStatement * * @param ms * @return */ public MappedStatement getCountMappedStatement(MappedStatement ms) { String newMsId = ms.getId() + PAGE_COUNT_SUFFIX; MappedStatement statement = null; Configuration configuration = ms.getConfiguration(); try { statement = configuration.getMappedStatement(newMsId); if(statement != null)return statement; } catch (Exception e) {} synchronized (configuration) { if(configuration.hasStatement(newMsId))return configuration.getMappedStatement(newMsId); MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), newMsId, ms.getSqlSource(), 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()); //count查询返回值int List<ResultMap> resultMaps = new ArrayList<ResultMap>(); String id = newMsId + "-Inline"; ResultMap resultMap = new ResultMap.Builder(configuration, id, Long.class, new ArrayList<ResultMapping>(0)).build(); resultMaps.add(resultMap); builder.resultMaps(resultMaps); builder.resultSetType(ms.getResultSetType()); builder.cache(ms.getCache()); builder.flushCacheRequired(ms.isFlushCacheRequired()); builder.useCache(ms.isUseCache()); statement = builder.build(); configuration.addMappedStatement(statement); return statement; } }