|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object com.supermap.data.QueryParameter
public class QueryParameter
查询参数类。
用于描述一个条件查询的限制条件,如所包含的 SQL 语句,游标方式,空间数据的位置关系条件设定等。
条件查询,是查询满足一定条件的所有要素的记录,其查询得到的结果是记录集。查询参数类是用来设置条件查询的查询条件从而得到记录集。条件查询包括两种最主要的查询方式,一种为 SQL 查询,又称属性查询,即通过构建包含属性字段、运算符号和数值的 SQL 条件语句来选择记录,从而得到记录集;另一种为空间查询,即根据要素间地理或空间的关系来查询记录来得到记录集。
该类中 getAttributeFilter()
(setAttributeFilter()
),getOrderBy()
(setOrderBy()
) 以及 getGroupBy()
(setGroupBy()
) 方法是用来返回和设置属性查询的相关信息的;而 getSpatialQueryObject()
(setSpatialQueryObject()
) 以及 getSpatialQueryMode
(setSpatialQueryMode
) 方法用来返回和设置空间查询的相关信息。另外,通过 getJoinItems()
(setJoinItems()
) 和 getLinkItems()
(setLinkItems
) 方法可以设置和返回与外部表的连接或关联,从而对外部表进行查询。
如果进行关联查询,必须将该类对象的游标设置为静态游标,具体使用方法请参见 setLinkItems()
方法的示例。
workspace
对象,工作空间中存在一个数据源 datasource
对象,此数据源中包含一个名为 World 的矢量数据集 dataset_world,取出该数据集。
public void queryParameterTest(DatasetVector dataset_world) { // 返回空间查询中的搜索对象 Recordset srcRecordset = dataset_world.query("SmID=100",CursorType.STATIC); // 设置查询参数 QueryParameter parameter = new QueryParameter(); parameter.setAttributeFilter("SmID<100"); parameter.setCursorType(CursorType.STATIC); parameter.setSpatialQueryMode(SpatialQueryMode.DISJOINT); parameter.setSpatialQueryObject(srcRecordset); // 进行查询 Recordset recordset = dataset_world.query(parameter); // 以 dataset_world 为模板创建数据集 DatasetVector dataset_result = (DatasetVector) datasets.createFromTemplate(datasets.getAvailableDatasetName("Results"), dataset_world); // 将空间查询结果追加到新建的数据集中 dataset_result.append(recordset); // 依次关闭所有对象 srcRecordset.close(); dataset_result.close(); dataset_world.close(); recordset.dispose(); }
构造方法摘要 | |
---|---|
QueryParameter()
构造一个新的 QueryParameter 对象。 |
|
QueryParameter(QueryParameter queryParameter)
根据给定的 QueryParameter 对象构造一个与其完全相同的新对象。 |
方法摘要 | |
---|---|
void |
AddTimeCondition(TimeCondition timecondition)
增加一个单时间字段时空模型查询条件。 |
void |
dispose()
释放该对象所占用的资源。 |
java.lang.String |
getAttributeFilter()
返回查询所构建的 SQL 条件语句,即 SQL WHERE clause 语句。 |
CursorType |
getCursorType()
返回查询所采用的游标类型。 |
java.lang.String[] |
getGroupBy()
返回 SQL 查询分组条件的字段。 |
boolean |
getHasGeometry()
返回查询结果是否包含几何对象字段。 |
JoinItems |
getJoinItems()
返回与外部表的连接信息。 |
LinkItems |
getLinkItems()
返回与外部表的关联信息。 |
java.lang.String[] |
getOrderBy()
返回SQL查询排序的字段。 |
java.lang.String |
getQueryHistoricalMomentName()
获取当前查询操作所在的历史时刻的版本名称。 |
QueryMode |
getQueryMode()
返回查询类型,SuperMap 支持一般查询、模糊查询和窗口查询。 |
java.lang.String |
getQueryVersionName()
获取当前查询操作所在版本的名称。 |
java.lang.String[] |
getResultFields()
返回查询结果字段集合。 |
SpatialQueryMode |
getSpatialQueryMode()
返回空间查询操作模式。 |
java.lang.Object |
getSpatialQueryObject()
返回空间查询中的搜索对象。 |
TimeCondition[] |
getTimeConditions()
获取单时间字段时空模型查询条件。 |
void |
setAttributeFilter(java.lang.String value)
设置查询所构建的 SQL 条件语句,即 SQL WHERE clause 语句。 |
void |
setCursorType(CursorType value)
设置查询所采用的游标类型。 |
void |
setGroupBy(java.lang.String[] value)
设置 SQL 查询分组条件的字段。 |
void |
setHasGeometry(boolean value)
设置查询结果是否包含几何对象字段。 |
void |
setJoinItems(JoinItems joinItems)
设置与外部表的连接信息。 |
void |
setLinkItems(LinkItems linkItems)
设置与外部表的关联信息。 |
void |
setOrderBy(java.lang.String[] value)
设置 SQL 查询排序的字段。 |
void |
setQueryHistoricalMomentName(java.lang.String strHisVersionName)
设置查询的历史时刻的版本名称,查询结果将以此版本下的数据状态为准。 |
void |
setQueryMode(QueryMode value)
设置查询类型,SuperMap 支持一般查询、模糊查询和窗口查询三种查询类型。 |
void |
setQueryVersionName(java.lang.String strVersionName)
设置查询的版本,查询结果将以此版本下的数据状态为准。 |
void |
setResultFields(java.lang.String[] value)
设置查询结果字段集合。 |
void |
setSpatialQueryMode(SpatialQueryMode value)
设置空间查询操作模式。 |
void |
setSpatialQueryObject(java.lang.Object value)
设置空间查询中的搜索对象。 |
void |
setTimeConditions(TimeCondition[] conditions)
设置单时间字段时空模型查询条件。 |
java.lang.String |
toString()
将此查询参数对象包含的查询参数输出为一个字符串。 |
从类 java.lang.Object 继承的方法 |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public QueryParameter()
public QueryParameter(QueryParameter queryParameter)
queryParameter
- 指定的 QueryParameter 对象。方法详细信息 |
---|
public CursorType getCursorType()
CursorType
DYNAMIC
类型。public void setCursorType(CursorType value)
进行关联查询,必须设置游标为静态游标。
value
- 指定查询所采用的游标类型。CursorType
setLinkItems()
方法的示例。public QueryMode getQueryMode()
QueryMode
public void setQueryMode(QueryMode value)
value
- 指定查询类型。QueryMode
public java.lang.String getAttributeFilter()
对于不同引擎的数据源,不同函数的适用情况及函数用法有所不同:
1.对于数据库型数据源(Oracle Plus、SQL Server Plus、PostgreSQL 和 DB2 数据源),函数的用法请参见数据库相关文档。
2.对于文件型数据源(UDB 数据源),可参见SQL查询技术文档。
public void setAttributeFilter(java.lang.String value)
对于不同引擎的数据源,不同函数的适用情况及函数用法有所不同:
1.对于数据库型数据源(Oracle Plus、SQL Server Plus、PostgreSQL 和 DB2 数据源),函数的用法请参见数据库相关文档。
2.对于文件型数据源(UDB 数据源),可参见SQL查询技术文档。
value
- 查询所构建的 SQL 条件语句,即 SQL WHERE clause 语句以字符串的形式作为参数整体传入。public void TestSQLQuery() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个 UDB 数据源 datasource 对象 // 数据源中包含一个名为 "Countries" 的矢量数据集 datasetVector,包含日期类型的字段"date" Datasets datasets = datasource.getDatasets(); DatasetVector datasetVector = (DatasetVector) datasets.get("Countries"); // 构造一个查询参数对象,查询Countries数据集中 date 字段为"1984-08-10"的记录。 QueryParameter queryParameter = new QueryParameter(); queryParameter.setAttributeFilter("date = to_date(1984-08-10 00:00:00)"); queryParameter.setCursorType(CursorType.DYNAMIC); // 进行排序查询,将结果存储在 recordset 对象中 Recordset recordset = datasetVector.query(queryParameter); // 以 datasetVector 为模板创建数据集 DatasetVector dataset_result = (DatasetVector) datasets.createFromTemplate(datasets.getAvailableDatasetName("Results"), datasetVector); // 将查询结果追加到新建的数据集中 dataset_result.append(recordset); // 依次关闭所有对象 recordset.close(); dataset_result.close(); datasetVector.close(); recordset.dispose(); }
public TimeCondition[] getTimeConditions()
public void setTimeConditions(TimeCondition[] conditions)
conditions
- 时间查询条件数组。public void AddTimeCondition(TimeCondition timecondition)
timecondition
- 时间查询条件。public boolean getHasGeometry()
Recordset
中,凡是对记录集的空间对象进行操作的方法,都将无效,例如,调用 Recordset.getGeometry()
将返回空。getHasGeometry()
方法返回值为 true,则 getResultFields()
方法将返回所有字段。
public void setHasGeometry(boolean value)
Recordset
中,凡是对记录集的空间对象进行操作的方法,都将无效,例如,调用 Recordset.getGeometry()
将返回空。getHasGeometry()
方法返回值为 true,则 getResultFields()
方法将返回所有字段。
value
- 指定查询结果是否包含几何对象字段。public java.lang.Object getSpatialQueryObject()
Point2D
,Rectangle2D
,GeoPoint
,GeoLine
,GeoRegion
,DatasetVector
,Recordset
等类型的对象。
注意:
public void setSpatialQueryObject(java.lang.Object value)
Point2D
,Rectangle2D
,GeoPoint
,GeoLine
,GeoLineM
,GeoRegion
,GeoText
,DatasetVector
,Recordset
等类型的对象。
注意:
value
- 空间查询中的搜索对象。public SpatialQueryMode getSpatialQueryMode()
NONE
模式。public void setSpatialQueryMode(SpatialQueryMode value)
value
- 空间查询操作模式。public java.lang.String[] getOrderBy()
对于 SQL 查询得到的记录集中的各记录,可以根据指定的字段进行排序,并可以指定为升序排列或是降序排列,其中 asc 表示升序,desc 表示降序。
注意用于排序的字段必须为数值型。
public void setOrderBy(java.lang.String[] value)
对于 SQL 查询得到的记录集中的各记录,可以根据指定的字段进行排序,并可以指定为升序排列或是降序排列,其中 asc 表示升序,desc 表示降序。
注意:用于排序的字段必须为数值型。
value
- SQL 查询排序的字段。public void testOrderBy() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象 // 数据源中包含一个名为 "text" 的矢量数据集 datasetVector,对该数据集中的 "ord" 、“or1”字段分别进行升序、降序排序 Datasets datasets = datasource.getDatasets(); DatasetVector datasetVector = (DatasetVector) datasets.get("text"); // 构造一个查询参数对象,其中查询条件为按照“ord”字段升序,“or1”字段降序,游标类型为动态 QueryParameter queryParameter = new QueryParameter(); queryParameter.setOrderBy(new String[] { "ord asc", "or1 desc" }); queryParameter.setCursorType(CursorType.DYNAMIC); // 进行排序查询,将结果存储在 recordset 对象中 Recordset recordset = datasetVector.query(queryParameter); // 以 datasetVector 为模板创建数据集 DatasetVector dataset_result = (DatasetVector) datasets.createFromTemplate(datasets.getAvailableDatasetName("Results"), datasetVector); // 将查询结果追加到新建的数据集中 dataset_result.append(recordset); // 依次关闭所有对象 recordset.close(); dataset_result.close(); datasetVector.close(); recordset.dispose(); }
public java.lang.String[] getGroupBy()
public void setGroupBy(java.lang.String[] value)
注意:
query
方法)不支持调用 setGroupBy
方法,否则可能导致空间查询的结果不正确。setCursorType(CursorType.STATIC)
时, setGroupBy()
方法才有效;setHasGeometry(false)
且 setResultFields()
方法中的字段与本方法中的字段相同时,setGroupBy()
方法才有效。setGroupBy()
方法,在查询非几何对象字段(即 setHasGeometry(false)
)时,返回的记录集为只读。
value
- SQL 查询分组条件的字段。public JoinItems getJoinItems()
JoinItems
对象。public void setJoinItems(JoinItems joinItems)
joinItems
- 指定与外部表的连接信息。public LinkItems getLinkItems()
LinkItems
对象。public void setLinkItems(LinkItems linkItems)
linkItems
- 与外部表的关联信息。public void testLinkQuery() { // 前提条件:已打开一个工作空间 workspace 对象,工作空间中存在一个Oracle数据源 datasource 对象,数据源中包含矢量数据集“World”和“Capital”,两个数据集都有 Country 字段。 // 获取两个数据集 Datasets datasets = datasource.getDatasets(); DatasetVector datasetVector = (DatasetVector) datasets.get("World"); DatasetVector datasetVector1 = (DatasetVector) datasets.get("Capital"); DatasourceConnectionInfo datasourceConnectionInfo = datasource.getConnectionInfo(); // 构造一个 LinkItem 对象,并对其进行相应设置 LinkItem linkItem = new LinkItem(); linkItem.setConnectionInfo(datasourceConnectionInfo); linkItem.setForeignTable(datasetVector1.getTableName()); String[] keys = new String[] { "Country" }; linkItem.setForeignKeys(keys); linkItem.setPrimaryKeys(keys); String[] fields = new String[] { "SMID AS LSMID", "Country AS LCountry", "Capital AS LCapital","Cap_Pop AS LCap_Pop" }; linkItem.setLinkFields(fields); // 构造一个 LinkItems 对象并将 linkItem 添加到其中 LinkItems linkItems = new LinkItems(); linkItems.add(linkItem); // 构造一个 QueryParameter 对象,并对其进行相应设置 QueryParameter queryParameter = new QueryParameter(); queryParameter.setLinkItems(linkItems); queryParameter.setCursorType(CursorType.STATIC); // 进行关联查询,并将其结果存储在 recordset 对象中 Recordset recordset = datasetVector.query(queryParameter); }
public java.lang.String[] getResultFields()
public void setResultFields(java.lang.String[] value)
注意:对 setResultField()
方法的设置,只有当 setHasGeometry(false)
时才有效,否则返回全部的字段。
value
- 查询结果字段集合。public java.lang.String toString()
java.lang.Object
中的 toString
public java.lang.String getQueryVersionName()
public void setQueryVersionName(java.lang.String strVersionName)
strVersionName
- 版本名称,默认是 default 版本public java.lang.String getQueryHistoricalMomentName()
public void setQueryHistoricalMomentName(java.lang.String strHisVersionName)
strHisVersionName
- 历史时刻的版本名称public void dispose()
|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |