[英]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;
}
目前我真的很困惑,所以如果您有什么好主意。
JdbcTemplate
的update
方法具有一个返回参数, 该参数给出了受影响的行数,因此,如果不删除任何内容,也不例外。 您必须检查返回值和期望的计数。
这是伪代码中的一个小例子
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.