我正在尝试使用ResultSetMetaData来构建SQL查询,以检查表中是否有动态的重复记录。
检查重复记录的查询将如下所示
select
col1,
col2,
col3
from Table A
group by
col1,
col2,
col3
having count(*)>1
这些代码大部分是样板文件,我可以使用ResultSetMetaData提取表的所有列。但我不知道如何以优雅的方式做到这一点,并处理最后一个缺少的逗号。
答案 0 :(得分:0)
在这种情况下,我倾向于使用番石榴图书馆的Joiner。使用joiner,您可以编写类似
的内容String.format(
"select %1$s from table %s group by %1$s having count(*) > 1",
"tablename",
Joiner.on(",").join("col1","col2","col3")
);
如果您使用的是Java 8,则可以使用String.join代替。
如有必要,请检查表名是否正确引用。