繁体   English   中英

使用ResultSetMetaData构架SQL查询

[英]Using ResultSetMetaData to frame SQL query

我正在尝试使用ResultSetMetaData来构架SQL查询,以动态检查表中是否有重复的记录。

用于检查重复记录的查询将如下所示

select 
col1,
col2,
col3
from Table A
group by 
col1,
col2,
col3
having count(*)>1

这段代码大部分都是样板代码,我可以使用ResultSetMetaData提取表的所有列。 但是我不确定如何以一种优雅的方式来处理最后一个缺少的逗号。

在这种情况下,我倾向于使用番石榴图书馆的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

如有必要,请检查表名是否正确引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM