From d202b2fbadfc0ea0485b5116cbf7a0acf799e566 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Wed, 7 Sep 2016 13:53:33 +0800 Subject: [PATCH] --- src/org/redkale/source/EntityInfo.java | 158 ++++++------------------- 1 file changed, 33 insertions(+), 125 deletions(-) diff --git a/src/org/redkale/source/EntityInfo.java b/src/org/redkale/source/EntityInfo.java index a02744401..a0c40074d 100644 --- a/src/org/redkale/source/EntityInfo.java +++ b/src/org/redkale/source/EntityInfo.java @@ -381,45 +381,9 @@ public final class EntityInfo { protected String formatToString(Object value) { if (value == null) return null; - if (value instanceof CharSequence) return new StringBuilder().append('\'').append(value.toString().replace("'", "\\'")).append('\'').toString(); -// final Class t = value.getClass(); -// if (t == int[].class) { -// int[] val = (int[]) value; -// if (val.length == 0) return ""; -// StringBuilder sb = new StringBuilder(); -// sb.append(val[0]); -// for (int i = 1; i < val.length; i++) { -// sb.append(';').append(val[i]); -// } -// return sb.toString(); -// } else if (t == long[].class) { -// long[] val = (long[]) value; -// if (val.length == 0) return ""; -// StringBuilder sb = new StringBuilder(); -// sb.append(val[0]); -// for (int i = 1; i < val.length; i++) { -// sb.append(';').append(val[i]); -// } -// return sb.toString(); -// } else if (t == String[].class) { -// String[] val = (String[]) value; -// if (val.length == 0) return ""; -// StringBuilder sb = new StringBuilder(); -// sb.append(val[0]); -// for (int i = 1; i < val.length; i++) { -// sb.append(';').append(val[i]); -// } -// return sb.toString(); -// } else if (t == short[].class) { -// short[] val = (short[]) value; -// if (val.length == 0) return ""; -// StringBuilder sb = new StringBuilder(); -// sb.append(val[0]); -// for (int i = 1; i < val.length; i++) { -// sb.append(';').append(val[i]); -// } -// return sb.toString(); -// } + if (value instanceof CharSequence) { + return new StringBuilder().append('\'').append(value.toString().replace("'", "\\'")).append('\'').toString(); + } return String.valueOf(value); } @@ -428,96 +392,40 @@ public final class EntityInfo { for (Attribute attr : queryAttributes) { if (sels == null || sels.test(attr.field())) { Serializable o = (Serializable) set.getObject(this.getSQLColumn(null, attr.field())); - if (o != null) { - Class t = attr.type(); - if (t == int.class) { - o = ((Number) o).intValue(); - } else if (t == short.class) { - o = ((Number) o).shortValue(); + final Class t = attr.type(); + if (t.isPrimitive()) { + if (o != null) { + if (t == int.class) { + o = ((Number) o).intValue(); + } else if (t == long.class) { + o = ((Number) o).longValue(); + } else if (t == short.class) { + o = ((Number) o).shortValue(); + } else if (t == float.class) { + o = ((Number) o).floatValue(); + } else if (t == double.class) { + o = ((Number) o).doubleValue(); + } else if (t == byte.class) { + o = ((Number) o).byteValue(); + } else if (t == char.class) { + o = (char) ((Number) o).intValue(); + } + } else if (t == int.class) { + o = 0; } else if (t == long.class) { - o = ((Number) o).longValue(); + o = 0L; + } else if (t == short.class) { + o = (short) 0; } else if (t == float.class) { - o = ((Number) o).floatValue(); + o = 0.0f; } else if (t == double.class) { - o = ((Number) o).doubleValue(); + o = 0.0d; } else if (t == byte.class) { - o = ((Number) o).byteValue(); -// } else if (t == short[].class) { -// String s = o.toString(); -// if (s.isEmpty()) { -// o = new short[0]; -// } else { -// String[] strs = o.toString().split(";"); -// short[] v = new short[strs.length]; -// int k = 0; -// for (int i = 0; i < strs.length; i++) { -// if (strs[i].isEmpty()) continue; -// v[k++] = Short.parseShort(strs[i]); -// } -// if (k == v.length) { -// o = v; -// } else { -// o = new short[k]; -// System.arraycopy(v, 0, o, 0, k); -// } -// } -// } else if (t == int[].class) { -// String s = o.toString(); -// if (s.isEmpty()) { -// o = new int[0]; -// } else { -// String[] strs = o.toString().split(";"); -// int[] v = new int[strs.length]; -// int k = 0; -// for (int i = 0; i < strs.length; i++) { -// if (strs[i].isEmpty()) continue; -// v[k++] = Integer.parseInt(strs[i]); -// } -// if (k == v.length) { -// o = v; -// } else { -// o = new int[k]; -// System.arraycopy(v, 0, o, 0, k); -// } -// } -// } else if (t == long[].class) { -// String s = o.toString(); -// if (s.isEmpty()) { -// o = new long[0]; -// } else { -// String[] strs = o.toString().split(";"); -// long[] v = new long[strs.length]; -// int k = 0; -// for (int i = 0; i < strs.length; i++) { -// if (strs[i].isEmpty()) continue; -// v[k++] = Long.parseLong(strs[i]); -// } -// if (k == v.length) { -// o = v; -// } else { -// o = new long[k]; -// System.arraycopy(v, 0, o, 0, k); -// } -// } -// } else if (t == String[].class) { -// String s = o.toString(); -// if (s.isEmpty()) { -// o = new String[0]; -// } else { -// String[] strs = o.toString().split(";"); -// String[] v = new String[strs.length]; -// int k = 0; -// for (int i = 0; i < strs.length; i++) { -// if (strs[i].isEmpty()) continue; -// v[k++] = strs[i]; -// } -// if (k == v.length) { -// o = v; -// } else { -// o = new String[k]; -// System.arraycopy(v, 0, o, 0, k); -// } -// } + o = (byte) 0; + } else if (t == boolean.class) { + o = false; + } else if (t == char.class) { + o = (char) 0; } } attr.set(obj, o);