MCPcopy Index your code
hub / github.com/dianping/cat / sqlResolve

Method sqlResolve

integration/mybatis/CatMybatisPlugin.java:140–170  ·  view source on GitHub ↗
(Configuration configuration, BoundSql boundSql)

Source from the content-addressed store, hash-verified

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;

Callers 1

getSqlMethod · 0.95

Calls 7

resolveParameterValueMethod · 0.95
sizeMethod · 0.65
getPropertyMethod · 0.65
findMethod · 0.65
getSqlMethod · 0.45
getValueMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected