我正在使用jdbc连接到数据库。在存储库中,我有这样的东西:
public Holiday save(Holiday holiday) {
jdbcTemplate.update(
INSERT_SQL,
new MapSqlParameterSource()
.addValue("date", holiday.getDate())
.addValue("version", holiday.getVersion())
.addValue("description", holiday.getDescription())
.addValue("created", holiday.getCreated())
.addValue("modified", holiday.getModified())
);
return findByDate(holiday.getDate());
}
private Holiday findByDate(LocalDate date) {
return jdbcTemplate.queryForObject(
SELECT_SQL_BY_DATE,
new MapSqlParameterSource().addValue("date", date),
new HolidayRowMapper()
);
}
(字段日期是唯一的)有时我会出错,因为select找不到保存的记录,但是当我查看数据库时,它总是被保存。是否可以在插入之前执行select?也许这是我的mysql数据库上的东西?我真的不知道这是什么
(jdbcTemplate为NamedParameterJdbcTemplate)