首页 / 浏览问题 / 组件GIS / 问题详情
iobjects java对数据库型源进行聚合函数查询
42EXP 2020年08月20日
Workspace workspace=new Workspace(); String bsm="localhost_PostgreSql_spatial_database"; String layerName="dltb_4326"; String bsmPath = "D:/java_server_data/xml" + "/" + bsm + ".xml"; DatasourceConnectionInfo dsInfo = DataSouceConnInfoUtil.ByXML(bsmPath); Datasource datasource = workspace.getDatasources().open(dsInfo); Datasets datasets = datasource.getDatasets(); DatasetVector queryDataset = (DatasetVector) datasets.get(layerName); String queryFilter="sum(smid) as smidsum"; Recordset queryRecordset=queryDataset.query(queryFilter,CursorType.STATIC); System.out.println(String.format("sql查询完成,输出%s条记录",queryRecordset.getRecordCount())); dsInfo.dispose(); workspace.dispose();

这样查询输出0条,语句写完整也是一样,在数据库里面就能查出来

select sum(smid) as smidsum from dltb_test

1个回答

你好,sql表达式中查询条件(Where–Clause语句)才是需要我们自己构建的,想要获取查询结果总记录数可以通过Recordset的getRecordCount()方法获取
2,842EXP 2020年08月20日

能不能使用AttributeFilter进行聚合函数查询呢?

比如我想查询来自postrgesql数据源的的数据进行面积的和值查询

你可以将所有记录拿到,通过Recordset的getFieldValue(String are)方法获取到该面对象的面积。再将所有面积相加,即可得到总面积。AttributeFilter参数也是 Where–Clause子句。

...