基于for循环更新数据库中的相同记录

时间:2016-08-02 09:38:41

标签: java sql xml

我遇到这种情况,其中状态为F的文档需要保存在表LOGS中,并带有文件名。

我的表应该有以下表示:

ID: Incremented
FILE:  fileNameWithOutExt (name of the file)
ERROR: errorCode

但是同一文件中的所有文件具有相同的状态,需要插入同一条记录中:

ID: 1
FILE:test
ERROR: id:5,id:9,id:10

我的if语句是在一个for循环中传递给xml文件中的所有子节点。状态为F的那些需要在同一记录中连接。

if(status.equals("F")){
    elemValue = element.getChild("id").getValue();
    String fileNameWithExt = f.getName();
    String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);
    saveLogs(fileNameWithOutExt, elemValue);
}

private void saveLogs(String fileNameWithOutExt, String elemValue){
    String errorCode = "id:"+ elemValue;
    String query = "INSERT INTO LOGS (FILE,ERROR)VALUES ('"+fileNameWithOutExt+"','"+errorCode+"')";
    String content = "";
    content = SqlTool.selectOneString("DB", query);   
}

1 个答案:

答案 0 :(得分:0)

您不能仅使用插入指令进行更新。 尝试查看更新指令,简单的方法是使用SQL脚本,如:

UPDATE MyTable SET FieldA=@FieldA WHERE Key=@Key

IF @@ROWCOUNT = 0
    INSERT INTO MyTable (FieldA) VALUES (@FieldA)