我在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
变量为null:
String paramValue = null;
在这种情况下,该字段在数据库中具有“null”文本而不是NULL值。
有没有人知道如何创建参数以向数据库发送真正的NULL值?
提前致谢!!
答案 0 :(得分:2)
尝试
map.addValue("in_param1", paramValue, Types.NULL);