未分类的SQL删除查询的SQLException

时间:2017-03-23 16:00:44

标签: java sql spring

  

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

感谢。

1 个答案:

答案 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);
}