public class QueryParameter
extends java.lang.Object
implements java.io.Serializable
查询参数类。
该类用于设置查询数据集的查询参数。
下面的代码显示如何构建一个图层的普通查询参数对象,对应数据信息在范例数据世界地图中:
QueryParameter queryParam = new QueryParameter();
// 查询所有人口大于1000万的首都
// 指定要查询的图层名称
queryParam.name = "Capitals@World";
// 对图层要素进行sql查询条件设置
queryParam.attributeFilter = "Cap_Pop > 10000000";
// 设置返回字段信息
queryParam.fields = new String[]{"Cap_pop"};
// 根据下面的字段进行分组
// queryParam.groupBy = "SMID";
// 根据SMID字段进行匹配查询,可以和attributeFilter进行组合使用
// queryParam.ids = new int[]{1,2,3,4};
// 根据SMID字段进行排序
// queryParam.orderBy = "SMID";
queryParameterSet.queryParams[0] = queryParam;
下面的代码显示如何构建一个关联外表的查询参数对象,对应数据信息在范例数据世界地图中:
QueryParameter queryParam = new QueryParameter();
// 指定要查询的图层名称
queryParam.name = "Capitals@World";
// 设置返回字段信息,以下设置为关联外表的字段
queryParam.fields = new String[]{"Pop_1994"};
// 关联项设置
JoinItem joinItem = new JoinItem();
// 关联外表表名
joinItem.foreignTableName = "Countries";
// 关联查询语句
joinItem.joinFilter = "Capitals.Country=Countries.Country";
// 关联类型
joinItem.joinType = JoinType.INNERJOIN;
queryParam.joinItems = new JoinItem[]{joinItem};
QueryParameterSet, DatasetInfo, 序列化表格| 限定符和类型 | 字段和说明 |
|---|---|
java.lang.String |
attributeFilter
属性过滤条件。
|
java.lang.String[] |
fields
查询字段数组,如果不设置则使用系统返回的所有字段。
|
java.lang.String |
groupBy
SQL 查询中结果分组条件的字段。
|
int[] |
ids
查询 id 数组。
|
JoinItem[] |
joinItems
关联查询项数组。
|
LinkItem[] |
linkItems
与外部表的关联信息。
|
java.lang.String |
name
数据集名称,或者图层名称,根据实际的功能而定。
|
java.lang.String |
orderBy
SQL 查询和空间查询中结果排序的字段。
|
| 构造器和说明 |
|---|
QueryParameter()
默认构造函数。
|
QueryParameter(QueryParameter queryParam)
拷贝构造函数。
|
QueryParameter(java.lang.String name)
带参构造函数。
|
QueryParameter(java.lang.String name, java.lang.String attributeFilter)
带参构造函数。
|
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
equals(java.lang.Object obj)
比较指定对象与当前
QueryParameter 对象是否相等。 |
int |
hashCode()
获取
QueryParameter 对象的哈希码。 |
public java.lang.String name
数据集名称,或者图层名称,根据实际的功能而定。
一般情况下该字段为数据集名称,但在进行与地图相关功能的操作时,需要设置为图层名称(图层名称格式:数据集名称@数据源别名)。 因为一个地图的图层可能是来自于不同数据源的数据集,而不同的数据源中可能存在同名的数据集,使用数据集名称不能唯一的确定数据集, 所以在进行与地图相关功能的操作时,该值需要设置为图层名称。
暂不支持对 CAD 数据集和 CAD 图层进行查询。
public JoinItem[] joinItems
关联查询项数组。
进行 SQL 查询时有效。
public LinkItem[] linkItems
与外部表的关联信息。
进行 SQL 查询时有效。
public int[] ids
查询 id 数组。
public java.lang.String attributeFilter
属性过滤条件。
SQL 语句中的 WHERE 子句的格式为:WHERE <条件表达式>,attributeFilter 就是其中的“条件表达式”。
该字段的用法为 attributeFilter = "过滤条件"。
例如,要查询字段 fieldValue 小于100的记录,设置 attributeFilter = "fieldValue < 100"; 要查询字段值为“酒店”的记录,设置 attributeFilter = "name like '%酒店%'";当查询字段名是中文时,需要加上双引号,比如:"名字" like '%密云%',等等。
public java.lang.String orderBy
SQL 查询和空间查询中结果排序的字段。用于排序的字段必须为数值型。
SQL 语句中的 ORDER BY 子句的格式为:ORDER BY <列名>或ORDER BY <列名 排序规则>。列名即属性表中每一列的名称,列又可称为属性, 在 SuperMap 中又称为字段,orderBy 设置为字段名。排序规则即按字段的升序或降序排序,asc 表示升序,desc 表示降序,不指定排序规则按升序排序。
对单个字段排序时,该字段的用法为 orderBy = "字段名",升序为orderBy = "字段名 asc";降序为 orderBy = "字段名 desc"; 对多个字段排序时,字段之间以英文逗号进行分割,用法为 orderBy = "字段名1, 字段名2 asc, 字段名2 desc"。
例如,在一个国家数据集中,有两个字段,字段名分别为“SmArea”和“pop_1994”,分别表示国家的面积和1994年的各国的人口数量,如果要按照各国人口数量对记录进行排序,可以设置 orderBy = "pop_1994";如果要以面积降序和人口升序进行排序, 设置 orderBy = "SmArea desc, pop_1994 asc"。
进行 SQL 查询及空间查询时有效。
public java.lang.String groupBy
SQL 查询中结果分组条件的字段。
SQL 语句中的 GROUP BY 子句的格式为:GROUP BY <列名>,列名即属性表中每一列的名称,列又可称为属性, 在 SuperMap 中又称为字段,groupBy 设置为字段名。
对单个字段分组时,该字段的用法为 groupBy = "字段名"; 对多个字段分组时,字段之间以英文逗号进行分割,用法为 groupBy = "字段名1, 字段名2"。
例如,有一个全球城市数据集,该数据集有两个字段,字段名分别为“Continent”和“Country”,分别表示某个城市所属的洲和国家, 如果要按照国家对全球的城市进行分组,可以设置 groupBy = "Country"; 如果以洲和国家对城市进行分组,设置 groupBy = "Continent, Country"。
进行 SQL 查询时有效。注意:空间查询不支持 groupBy字段,否则可能导致空间查询的结果不正确。
public java.lang.String[] fields
查询字段数组,如果不设置则使用系统返回的所有字段。
public QueryParameter()
默认构造函数。
public QueryParameter(QueryParameter queryParam)
拷贝构造函数。
queryParam - 查询参数对象。java.lang.IllegalArgumentException - 当查询参数对象为 Null 时抛出异常。public QueryParameter(java.lang.String name)
带参构造函数。
name - 查询数据集名称。
public QueryParameter(java.lang.String name,
java.lang.String attributeFilter)
带参构造函数。
name - 查询数据集名称。attributeFilter - 查询 where 语句。public int hashCode()
获取 QueryParameter 对象的哈希码。
hashCode 在类中 java.lang.ObjectObject.hashCode()public boolean equals(java.lang.Object obj)
比较指定对象与当前 QueryParameter 对象是否相等。
equals 在类中 java.lang.Objectobj - 与当前 QueryParameter 进行比较的对象。Object.equals(java.lang.Object)