如何向我的sql DB发送空变量而不是空白变量?

时间:2013-05-21 00:54:54

标签: java sql insert null

每当有人尝试使用我的程序进行注册,并将一个非必需的文本字段留空时,我的指令会发送一个“”(空白)数据,而不是空数据,如何使我插入的数据为每当textfield为空时为null? 感谢

2 个答案:

答案 0 :(得分:2)

如果您使用的是原始SQL:

insert into mytable values ('foo', null, 'bar')

如果你正在使用准备好的陈述:

preparedStatement.setObject(columnIndex, null);

使用评论中的查询,这是一个简单的修复:应用replaceAll()将所有空格更改为null,如下所示:

st.executeUpdate("INSERT INTO clientes (Nombre, Telefono, Calle, Numero,Colonia, Municipio, Estado, Codigo_Postal,Sexo,Fecha_nacimiento) VALUES ('" 
+ snombre_cliente + "','" + stelef_cliente + "','" + scalle + "','" + snumero + "','" + scolonia + "','" + smunicipio + "','" + sestado + "','" + scodigop + "','" + ssexo + "','" + sfecha 
+ "')".replaceAll("'\\s*'", "null"));

这将用“null”一词替换由任意数量的空格(包括没有空格)分隔的所有引号。

答案 1 :(得分:0)

试试这个:

preparedStatement.setNull(1,java.sql.Types.String)