SQL状态[99999];错误代码[17004];列类型无效;嵌套 异常是java.sql.SQLException:列无效 类型\ “\ ”错误\“:\ ”UncategorizedSQLException \“}”}
我的情况: 在我们的数据库中,一个用户将拥有一个Id,但是这个Id可以有多个值。例如,我有一个userId,对于我的userID,我有10个健康记录。所以我必须一次删除这10条健康记录。所以我传递userId和List的值(数据类型是Number)。原始查询有效,但是当我浏览java代码时,它会给出无效列异常。有什么建议吗?
Java实现方法是使这个调用是
@Override
public void deleteSampleValue(BiometricPkDTO biometricPkDTO){
update(deleteSampleValueSql,log,biometricPkDTO.getSeriesPk(),biometricPkDTO.getSamplePks());
}
我在资源文件夹中添加的SQL查询是
从bio_sample删除 BIO_SERIES_PK =哪里? 和(?)
中的BIO_SAMPLE_PK感谢。
答案 0 :(得分:0)
由于我正在为一个特定的Id执行多个删除操作,因此建议使用NamedParameterJdbcTemplate(getJdbcTemplate()。getDataSource())。实例化MapSqlParameterSource对象并使用引用变量将输入传递给sql查询。最终的Dao实现方法如下:
@覆盖 public void deleteSample(BiometricPkDTO biometricPkDTO){
MapSqlParameterSource parameterSource = new MapSqlParameterSource();
parameterSource.addValue("seriesPk",biometricPkDTO.getSeriesPk());
parameterSource.addValue("samplePks", biometricPkDTO.getSamplePks());
namedParameterJdbcTemplate.update(deleteSampleSql,parameterSource);
}