SimpleJdbcCall 参数不将 null 作为 NULL 值插入

SimpleJdbcCall parameters not inserting null as NULL value

我正在 MySql 数据库中调用存储过程

CREATE PROCEDURE `sp_1` (IN in_param1 VARCHAR(255))
BEGIN
    INSERT INTO t_1 (field1) VALUES (in_param1);
END

有一个 SimpleJdbcCall 对象:

SimpleJdbcCall jdbcCall = new SimpleJdbcCall(dataSource);
jdbcCall.withoutProcedureColumnMetaDataAccess();
jdbcCall.withProcedureName(procedureName);

String paramValue = "new value";

MapSqlParameterSource map = new MapSqlParameterSource();
jdbcCall.addDeclaredParameter(new SqlParameter(Types.VARCHAR));
map.addValue("in_param1", paramValue, Types.VARCHAR);

SqlParameterSource sqlParameterSource = map;

jdbcCall.execute(sqlParameterSource);

它工作正常,除非 paramValue 变量为空:

String paramValue = null;

在这种情况下,该字段具有 "null" 文本而不是数据库中的 NULL 值。

有人知道我必须如何创建参数才能将真正的 NULL 值发送到数据库吗?

提前致谢!!

尝试

map.addValue("in_param1", paramValue, Types.NULL);