public static String selectByIds()

in bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java [302:341]


    public static String selectByIds(
            TableMetaData tableMetaData, String databaseId, Collection<? extends Serializable> ids) {

        SQL sql = new SQL();
        switch (DBType.toType(databaseId)) {
            case MYSQL: {
                sql.SELECT(tableMetaData.getBaseColumns());
                sql.FROM(tableMetaData.getTableName());
                if (ids == null || ids.isEmpty()) {
                    sql.WHERE("1 = 0");
                    break;
                }

                StringBuilder idStr = new StringBuilder();
                for (int i = 0; i < ids.size(); i++) {
                    idStr.append(getTokenParam("arg0[" + i + "]")).append(",");
                }
                idStr.deleteCharAt(idStr.lastIndexOf(","));

                sql.WHERE(tableMetaData.getPkColumn() + " IN ( " + idStr + " )");
                break;
            }
            case POSTGRESQL: {
                String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining(","));
                String baseColumns = tableMetaData.getBaseColumns();
                if (baseColumns.toLowerCase().contains("user.")) {
                    baseColumns = baseColumns.replace("user.", "\"user\".");
                }
                sql.SELECT(baseColumns);
                sql.FROM(keywordsFormat(tableMetaData.getTableName(), DBType.POSTGRESQL));
                sql.WHERE(tableMetaData.getPkColumn() + " in (" + idsStr + ")");
                break;
            }
            default: {
                log.error("Unsupported data source");
            }
        }

        return sql.toString();
    }