Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Mysql 当我使用SQL更新时,如果字段为空,它会在数据库中更改该值为空_Mysql_Java - Fatal编程技术网

Mysql 当我使用SQL更新时,如果字段为空,它会在数据库中更改该值为空

Mysql 当我使用SQL更新时,如果字段为空,它会在数据库中更改该值为空,mysql,java,Mysql,Java,我有一个包含6列的表:userid、firstname、lastname、title、band和email。当我只想更新其中一个时,我将只在相应的文本字段中输入文本。例如,如果我想更新firstname,我只会写新的firstname,而不会为lastname、title等添加任何内容 问题是,当我没有为那些其他文本字段放置任何内容时,数据库会假定我想将这些值更新为空,而当我运行数据库时,那里就什么都没有了。我该如何解决这个问题 String ID=textID.getText(); Strin

我有一个包含6列的表:userid、firstname、lastname、title、band和email。当我只想更新其中一个时,我将只在相应的文本字段中输入文本。例如,如果我想更新firstname,我只会写新的firstname,而不会为lastname、title等添加任何内容

问题是,当我没有为那些其他文本字段放置任何内容时,数据库会假定我想将这些值更新为空,而当我运行数据库时,那里就什么都没有了。我该如何解决这个问题

String ID=textID.getText();
String first=textFirstName.getText();
字符串last=textLastName.getText();
String title=textTitle.getText();
String squad=textSquad.getText();
字符串email=textmail.getText();
int newID=Integer.parseInt(ID);
int newSquad=Integer.parseInt(班);
试试{
如果(第一个!=null){
String sql=“Update components”+“set firstname=?”+“where userid=?”;
PreparedStatement upd=myConn.prepareStatement(sql);
upd.setString(1,first);//将first替换为first name的值
setInt(2,newID);//将second?替换为userid的值
upd.executeUpdate();
}
if(last!=null){
String sql=“Update components”+“set lastname=?”+“where userid=?”;
PreparedStatement upd=myConn.prepareStatement(sql);
upd.设置管柱(1,最后一个);
upd.setInt(2,newID);
upd.executeUpdate();
}
// ...
而不是比较

(first != null)
它将
first
的值与您应该比较的空值(我想,
getText()函数永远不会返回空值)进行比较

(!("".equals(first))



顺便说一句:这不再是关于数据库的问题,而是关于Java编程的问题。最好用stackoverflow来回答,而不是用DBA.SE来回答。我认为处理此类检查的最佳方法是使用一个经过测试的、开源的、可供生产使用的库,您可以完全信任它。
有很多UTIL类可用于那些“简单”任务,因此您不必自己重写它们。

@joanolo我决定先使用
first.length()>0
,但我遇到了一个错误:线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:用于输入字符串:“我猜这可能发生在其他地方……在这里,一个整数应该是一个空字符串。请仔细检查您的代码并找出它。@joanolo现在可以了!我似乎找不到表示这个问题已得到回答的复选标记。我看到的只是一个星星我已经将其作为答案发布,以及一些关于这不再是一个问题的评论数据库问题,最好移到StackOverflow。