(Configuration configuration, BoundSql boundSql)
| 138 | } |
| 139 | |
| 140 | public String sqlResolve(Configuration configuration, BoundSql boundSql) { |
| 141 | Object parameterObject = boundSql.getParameterObject(); |
| 142 | List<ParameterMapping> parameterMappings = boundSql.getParameterMappings(); |
| 143 | String sql = boundSql.getSql().replaceAll("[\\s]+", " "); |
| 144 | if (parameterMappings.size() > 0 && parameterObject != null) { |
| 145 | TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); |
| 146 | if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) { |
| 147 | sql = sql.replaceFirst("\\?", Matcher.quoteReplacement(resolveParameterValue(parameterObject))); |
| 148 | |
| 149 | } else { |
| 150 | MetaObject metaObject = configuration.newMetaObject(parameterObject); |
| 151 | Matcher matcher = PARAMETER_PATTERN.matcher(sql); |
| 152 | StringBuffer sqlBuffer = new StringBuffer(); |
| 153 | for (ParameterMapping parameterMapping : parameterMappings) { |
| 154 | String propertyName = parameterMapping.getProperty(); |
| 155 | Object obj = null; |
| 156 | if (metaObject.hasGetter(propertyName)) { |
| 157 | obj = metaObject.getValue(propertyName); |
| 158 | } else if (boundSql.hasAdditionalParameter(propertyName)) { |
| 159 | obj = boundSql.getAdditionalParameter(propertyName); |
| 160 | } |
| 161 | if (matcher.find()) { |
| 162 | matcher.appendReplacement(sqlBuffer, Matcher.quoteReplacement(resolveParameterValue(obj))); |
| 163 | } |
| 164 | } |
| 165 | matcher.appendTail(sqlBuffer); |
| 166 | sql = sqlBuffer.toString(); |
| 167 | } |
| 168 | } |
| 169 | return sql; |
| 170 | } |
| 171 | |
| 172 | private String resolveParameterValue(Object obj) { |
| 173 | String value = null; |
no test coverage detected