add comments

This commit is contained in:
开源海哥 2023-03-15 15:33:48 +08:00
parent 42b79bf1f4
commit b0c79dac0b
2 changed files with 8 additions and 6 deletions

View File

@ -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)) {

View File

@ -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++);
}
// OracleSqlServer TIMESTAMPDATE 类型的数据是支持 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 {
/** MySqlOracle 等驱动中通过 PreparedStatement.setObject 驱动会自动根据 value 内容进行转换
* 源码可参考 {{@link com.mysql.jdbc.PreparedStatement#setObject(int, Object)}
**/