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.Object
Object.hashCode()
public boolean equals(java.lang.Object obj)
比较指定对象与当前 QueryParameter
对象是否相等。
equals
在类中 java.lang.Object
obj
- 与当前 QueryParameter
进行比较的对象。Object.equals(java.lang.Object)