MyBatis插件-慢sql耗时监控插件( 二 )

parameterMappingList, Class parameterObjectClass, Object parameterObject) throws Exception {String propertyValue;for(Iterator var5 = parameterMappingList.iterator(); var5.hasNext(); sql = sql.replaceFirst("\?", propertyValue)) {ParameterMapping parameterMapping = (ParameterMapping)var5.next();propertyValue = null;if (this.isPrimitiveOrPrimitiveWrapper(parameterObjectClass)) {propertyValue = parameterObject.toString();} else {String propertyName = parameterMapping.getProperty();Field field = parameterObjectClass.getDeclaredField(propertyName);field.setAccessible(true);propertyValue = String.valueOf(field.get(parameterObject));if (parameterMapping.getJavaType().isAssignableFrom(String.class)) {propertyValue = """ + propertyValue + """;}}}return sql;}private boolean isPrimitiveOrPrimitiveWrapper(Class parameterObjectClass) {return parameterObjectClass.isPrimitive() || parameterObjectClass.isAssignableFrom(Byte.class) || parameterObjectClass.isAssignableFrom(Short.class) || parameterObjectClass.isAssignableFrom(Integer.class) || parameterObjectClass.isAssignableFrom(Long.class) || parameterObjectClass.isAssignableFrom(Double.class) || parameterObjectClass.isAssignableFrom(Float.class) || parameterObjectClass.isAssignableFrom(Character.class) || parameterObjectClass.isAssignableFrom(Boolean.class);}private boolean isStrictMap(Class parameterObjectClass) {return parameterObjectClass.isAssignableFrom(StrictMap.class);}private boolean isList(Class clazz) {Class[] interfaceClasses = clazz.getInterfaces();Class[] var3 = interfaceClasses;int var4 = interfaceClasses.length;for(int var5 = 0; var5 < var4; ++var5) {Class interfaceClass = var3[var5];if (interfaceClass.isAssignableFrom(List.class)) {return true;}}return false;}private boolean isMap(Class parameterObjectClass) {Class[] interfaceClasses = parameterObjectClass.getInterfaces();Class[] var3 = interfaceClasses;int var4 = interfaceClasses.length;for(int var5 = 0; var5 < var4; ++var5) {Class interfaceClass = var3[var5];if (interfaceClass.isAssignableFrom(Map.class)) {return true;}}return false;}public long getMaxTime() {return this.maxTime;}public void setMaxTime(long maxTime) {this.maxTime = maxTime;}}
【MyBatis插件-慢sql耗时监控插件】


推荐阅读