diff --git a/src/main/java/com/profiler/util/bindvalue/BindValueConverter.java b/src/main/java/com/profiler/util/bindvalue/BindValueConverter.java new file mode 100644 index 000000000..753604a69 --- /dev/null +++ b/src/main/java/com/profiler/util/bindvalue/BindValueConverter.java @@ -0,0 +1,41 @@ +package com.profiler.util.bindvalue; + +import com.profiler.util.StringUtils; + +import java.util.HashMap; +import java.util.Map; + +public class BindValueConverter { + public static final Map convertermap = new HashMap() ; + + public String bindValueToString(String methodName, Object[] args) { + Converter converter = convertermap.get(methodName); + if (converter == null) { + return ""; + } + return converter.convert(args); + } + + interface Converter { + String convert(Object[] args); + } + + class CommonConverter implements Converter { + @Override + public String convert(Object[] args) { + if(args == null) { + return "null"; + } + if (args.length == 1) { + return StringUtils.toString(args[1]); + } + else if(args.length == 2) { + return StringUtils.toString(args[0]) + ":" + StringUtils.toString(args[1]); + } + else if(args.length == 3) { + return StringUtils.toString(args[0]) + ":" + StringUtils.toString(args[1]); + } + return "error"; + } + } +} diff --git a/src/main/java/com/profiler/util/bindvalue/Types.java b/src/main/java/com/profiler/util/bindvalue/Types.java new file mode 100644 index 000000000..058a92264 --- /dev/null +++ b/src/main/java/com/profiler/util/bindvalue/Types.java @@ -0,0 +1,32 @@ +package com.profiler.util.bindvalue; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class Types { + + private static final Map MAP; + + static { + MAP = inverse(); + } + + static Map inverse() { + Map map = new HashMap(); + Field[] fields = java.sql.Types.class.getFields(); + for (Field field : fields) { + String name = field.getName(); + try { + Integer value = (Integer) field.get(java.sql.Types.class); + map.put(value, name); + } catch (IllegalAccessException e) { + } + } + return map; + } + + public static String findType(int type) { + return MAP.get(type); + } +} diff --git a/src/test/java/com/profiler/util/bindvalue/TypesTest.java b/src/test/java/com/profiler/util/bindvalue/TypesTest.java new file mode 100644 index 000000000..af75327a2 --- /dev/null +++ b/src/test/java/com/profiler/util/bindvalue/TypesTest.java @@ -0,0 +1,17 @@ +package com.profiler.util.bindvalue; + +import org.junit.Assert; +import org.junit.Test; + +import java.lang.reflect.Field; +import java.util.Map; + +public class TypesTest { + + @Test + public void testInverse() throws Exception { + Map inverse = Types.inverse(); + Field[] fields = java.sql.Types.class.getFields(); + Assert.assertEquals(inverse.size(), fields.length); + } +}