gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:40:54 25 4
gpt4 key购买 nike

我正在调用 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 值发送到数据库吗?

提前致谢!!

最佳答案

尝试

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

关于java - SimpleJdbcCall 参数不将 null 作为 NULL 值插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com