From b0c79dac0bbc315d2581eeace4142697f37da390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Wed, 15 Mar 2023 15:33:48 +0800 Subject: [PATCH] add comments --- .../com/mybatisflex/core/mybatis/FlexConfiguration.java | 5 ++++- .../core/mybatis/SqlArgsParameterHandler.java | 9 ++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexConfiguration.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexConfiguration.java index 02f44dff..cf70d42e 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexConfiguration.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexConfiguration.java @@ -69,7 +69,10 @@ public class FlexConfiguration extends Configuration { @Override public ParameterHandler newParameterHandler(MappedStatement mappedStatement, Object parameterObject, BoundSql boundSql) { String mappedStatementId = mappedStatement.getId(); - // 以 "!selectKey" 结尾的 mappedStatementId,是用于主键生成的,无需为其设置参数 + /** + * 以 "!selectKey" 结尾的 mappedStatementId,是用于 Sequence 生成主键的,无需为其设置参数 + * {@link SelectKeyGenerator#SELECT_KEY_SUFFIX} + */ if (!mappedStatementId.endsWith(SelectKeyGenerator.SELECT_KEY_SUFFIX) && parameterObject instanceof Map && ((Map) parameterObject).containsKey(FlexConsts.SQL_ARGS)) { diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/SqlArgsParameterHandler.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/SqlArgsParameterHandler.java index 80623fce..26e77152 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/SqlArgsParameterHandler.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/SqlArgsParameterHandler.java @@ -51,17 +51,16 @@ public class SqlArgsParameterHandler extends DefaultParameterHandler { if (sqlArgs != null && sqlArgs.length > 0) { int index = 1; for (Object value : sqlArgs) { - if (value instanceof TypeHandlerObject){ - ((TypeHandlerObject) value).setParameter(ps,index++); + //通过配置的 TypeHandler 去设置内容 + if (value instanceof TypeHandlerObject) { + ((TypeHandlerObject) value).setParameter(ps, index++); } //在 Oracle、SqlServer 中 TIMESTAMP、DATE 类型的数据是支持 java.util.Date 给值的 else if (value instanceof java.util.Date) { setDateParameter(ps, (Date) value, index++); } else if (value instanceof byte[]) { ps.setBytes(index++, (byte[]) value); - } - - else { + } else { /** 在 MySql,Oracle 等驱动中,通过 PreparedStatement.setObject 后,驱动会自动根据 value 内容进行转换 * 源码可参考: {{@link com.mysql.jdbc.PreparedStatement#setObject(int, Object)} **/