我是后端开发新手,目前我面临着使用namedParameterJdbcTemplate从Spring DAO服务将数据添加到我的postgres数据库的问题。
public int addCompany(CompanyDto companyDto) throws DataAccessException {
MapSqlParameterSource namedParams = new MapSqlParameterSource();
namedParams.addValue("name", companyDto.getName());
return namedParameterJdbcTemplate.update(
CompanyQueries.ADD_COMPANY,
namedParams
);
}
public class CompanyQueries {
public static final String ADD_COMPANY = "INSERT INTO company (name) values (:name);";
}
但是当我调用端点并调用 addCompany() 中的更新时,它返回 1 ,表 id 的序列递增,数据库日志中根本没有错误,我在 postgresql.conf 中打开了 csvlogs。
通过namedParameterJdbcTemplate进行的选择工作正确。
Postgres 版本 15 爪哇17 春季 6 弹簧靴 3
当我在 datagrip 控制台中运行查询时,会添加行。
发生这种情况是因为事务最终没有提交。 我是如何找到解决方案的。
你可以尝试@Transactional
@Transactional(rollbackFor = Exception.class)
public int addCompany(CompanyDto companyDto) throws DataAccessException{
MapSqlParameterSource namedParams = new MapSqlParameterSource();
namedParams.addValue("name", companyDto.getName());
return namedParameterJdbcTemplate.update(
CompanyQueries.ADD_COMPANY,
namedParams
);
}
我认为它有效