繁体   English   中英

JdbcTemplate的SQL DELETE FROM不起作用

[英]SQL DELETE FROM by JdbcTemplate doesn't work

我正在尝试使用JDBC模板从表中删除行,但是以某种方式它行不通,没有错误就什么也没有。 使用几乎相同的逻辑,Insert Into可以正常工作。

@Override
  public void deleteEntry(long id) {
    String deleteQuery = "DELETE FROM company WHERE id = ?";
    jdbcTemplate.update(deleteQuery, id);
  }

例如,工作被截断

@Override
public long addEntry(Company entry) {
    String insertSql = "INSERT INTO company VALUES (?,?,?,?,?,?,?,?,?)";
    jdbcTemplate.update(insertSql, companyObject(entry));
    return 0;
}

目前我真的很困惑,所以如果您有什么好主意。

JdbcTemplateupdate方法具有一个返回参数, 参数给出了受影响的行数,因此,如果不删除任何内容,也不例外。 您必须检查返回值和期望的计数。

这是伪代码中的一个小例子

def id = 1 
String deleteQuery = "DELETE FROM company WHERE id = ?";
def updCnt = jdbcTemplate.update(deleteQuery, id);
println "deleting ID ${id}, deleted rows ${updCnt}"

给例如

deleting ID 1, deleted rows 1

不删除的最可能原因是您使用了不存在的ID,并且返回值为零。

如果您观察到预期的已删除计数,但未删除记录,则您的数据源可能已配置为autoCommit FALSE设置。 在这里查看详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM