Я использую базу данных Azure Cosmos NoSQL с синтаксисом SQL.Как создать строку SQL, которая может динамически добавлять больше операторов WHERE?Например, я хочу иметь возможность не кодировать в "ГДЕ f.%s=@val" для одной, а затем жестко закодировать другую функцию с помощью "ГДЕ f.%s=@val1 AND f.%s=@val2"если у меня есть два, где заявления.Я хочу иметь до 7 операторов WHERE.
Ниже у меня есть код, который запрашивает одно свойство (один оператор WHERE) и другой, который запрашивает 2 свойства (два оператора WHERE).Здесь много сложного кодирования.Строки с queryString - вот где у меня проблемы.
public Iterable<Document> queryForOneProperty(String databaseName, String
collectionName, String key, String val) {
FeedOptions queryOptions = getDefaultFeedOptions();
String collectionLink = String.format("/dbs/%s/colls/%s", databaseName, collectionName);
SqlParameterCollection paramCollection = new SqlParameterCollection();
paramCollection.add(new SqlParameter("@val", val));
SqlQuerySpec query = new SqlQuerySpec(String.format("SELECT * FROM %s f WHERE f.%s = @val", collectionName, key), paramCollection);
return query;
}
public Iterable<Document> queryForTwoProperties(String databaseName, String
collectionName, String[] keys, String[] vals) {
FeedOptions queryOptions = getDefaultFeedOptions();
String collectionLink = String.format("/dbs/%s/colls/%s", databaseName, collectionName);
SqlParameterCollection paramCollection = new SqlParameterCollection();
paramCollection.add(new SqlParameter("@val1", vals[0]));
paramCollection.add(new SqlParameter("@val2", vals[1]));
String queryString = String.format("SELECT * FROM %s f WHERE f.%s = @val1 AND f.%s = @val2", collectionName, keys[0], keys[1]);
SqlQuerySpec query = new SqlQuerySpec(queryString, paramCollection);
return query;
}
'' '