diff --git a/src/main/java/xyz/zhouxy/jdbc/ParamBuilder.java b/src/main/java/xyz/zhouxy/jdbc/ParamBuilder.java index d7f3638..b335e9c 100644 --- a/src/main/java/xyz/zhouxy/jdbc/ParamBuilder.java +++ b/src/main/java/xyz/zhouxy/jdbc/ParamBuilder.java @@ -17,6 +17,7 @@ package xyz.zhouxy.jdbc; import java.sql.PreparedStatement; +import java.time.temporal.Temporal; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -51,24 +52,41 @@ public class ParamBuilder { return EMPTY_OBJECT_ARRAY; } return Arrays.stream(params) - .map(param -> { - if (param instanceof Optional) { - return OptionalTools.orElseNull((Optional) param); - } - if (param instanceof OptionalInt) { - return OptionalTools.toInteger((OptionalInt) param); - } - if (param instanceof OptionalLong) { - return OptionalTools.toLong((OptionalLong) param); - } - if (param instanceof OptionalDouble) { - return OptionalTools.toDouble((OptionalDouble) param); - } - return param; - }) + .map(ParamBuilder::handleItem) .toArray(); } + private static Object handleItem(Object param) { + if (param == null) { + return null; + } + if (param instanceof CharSequence) { + return param.toString(); + } + if (param instanceof Number) { + return param; + } + if (param instanceof Boolean) { + return param; + } + if (param instanceof Temporal) { + return param; + } + if (param instanceof Optional) { + return OptionalTools.orElseNull((Optional) param); + } + if (param instanceof OptionalInt) { + return OptionalTools.toInteger((OptionalInt) param); + } + if (param instanceof OptionalLong) { + return OptionalTools.toLong((OptionalLong) param); + } + if (param instanceof OptionalDouble) { + return OptionalTools.toDouble((OptionalDouble) param); + } + return param; + } + public static List buildBatchParams(final Collection c, final Function func) { AssertTools.checkNotNull(c, "The collection can not be null."); AssertTools.checkNotNull(func, "The func can not be null.");