Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将空变量而不是空变量发送到sql DB?_Java_Sql_Insert_Null - Fatal编程技术网

Java 如何将空变量而不是空变量发送到sql DB?

Java 如何将空变量而不是空变量发送到sql DB?,java,sql,insert,null,Java,Sql,Insert,Null,每当有人试图使用我的程序注册,并将一个非必需的文本字段留空,我的指令就会发送一个“”(空白)数据,而不是在一个空的数据上,当文本字段为空时,我如何使插入的数据为空? 如果您使用的是原始SQL,请感谢: insert into mytable values ('foo', null, 'bar') 如果您正在使用准备好的语句: preparedStatement.setObject(columnIndex, null); 使用注释中的查询,这里有一个简单的修复方法:应用replaceAll(

每当有人试图使用我的程序注册,并将一个非必需的文本字段留空,我的指令就会发送一个“”(空白)数据,而不是在一个空的数据上,当文本字段为空时,我如何使插入的数据为空?
如果您使用的是原始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”一词替换所有由任意数量的空格分隔的引号(不包括空格)。

尝试以下操作:

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

NULL这个词是可以在insert或update语句中传递的关键字。您的代码示例易受SQL注入的攻击。它对我没有帮助,它说我的sintax有问题。这是我的插入代码st.executeUpdate(“插入客户(
Nombre
Telefono
Calle
Numero
Colonia
Estado
Sexo
Fecha>Nacimento
)值(“+snombre=”,“+cliente+”,“+stelef+”,“,”“+snumero+”、“+scolonia+”、“+smunicipio+”、“+sestado+”、“+scodigop+”、“+ssexo+”、“+sfecha+”)`确实不想在正则表达式中使用
'\\s*'
?@NovaDenizen哇!你说得很对。谢谢你的接送。