我很好奇我应该如何使用springs jdbctemplate类来确定一个记录或行是否已经存在于我的一个表中??我已经尝试过了
int count = jdbcTemplate.queryForObject("select * from MyTable
where Param = ?", new Object[] {myParam},
Integer.class);
if(count ==0)
//record does not exist
问题是,虽然我一直得到EmptyResultAccessDataException
的,当它不存在,所以我更新了代码
try{
jdbcTemplate.queryForObject("select * from MyTable
where Param = ?", new Object[] {myParam},
Integer.class);
} catch(EmptyResultAccessDataException e) {//insert the record}
所以我想我真实的的问题是什么是最好的方法来搜索一个记录存在于一个表中,因为我想添加说,如果它不存在,什么也不做,如果它是。
4条答案
按热度按时间8fq7wneg1#
你可以使用类似这样的东西:
安吉洛
uemypmqf2#
如果存在数据库支持(例如Postgres),最好使用它:
Fastest check if row exists in PostgreSQL
u5rb5r593#
使用 JdbcTemplate 的query方法更适合这种情况,因为它们允许返回零行(没有EmptyResultDataAccessException):
ivqmmu1c4#
让我合并Anton Yuriev,Reginaldo Santos,Angelo Immediata的几个答案,并使用Kotlin给予这个问题的简短解决方案。
如果你需要检查一个表中是否存在一行,这里有一个很好的解决方案。在这种情况下,表中的所有记录都是唯一的:
第二解决方案:
最后一个解决方案:
P.S.最后一个解决方案是fastest,用于检查行是否存在。