国产精品色在线_精品久久久久久最新网址_亚洲综合另类小说_一区二区欧美日韩视频

 

當(dāng)前熱訊:Geotools基本增刪改查Feature

發(fā)布時(shí)間:2023-04-24 05:27:35  |  來源:博客園  


(資料圖片)

postgis依賴

    org.geotools    gt-main    27.2    org.geotools    gt-jdbc-postgis    27.2

創(chuàng)建連接JDBCDataStore

Map params = Map.of(    PostgisNGDataStoreFactory.HOST.key, host,    PostgisNGDataStoreFactory.PORT.key, port,    PostgisNGDataStoreFactory.DATABASE.key, database,    PostgisNGDataStoreFactory.SCHEMA.key, schema,    PostgisNGDataStoreFactory.USER.key, user,    PostgisNGDataStoreFactory.PASSWD.key, passwd,    PostgisNGDataStoreFactory.DBTYPE.key, dbtype);JDBCDataStore jdbcDataStore = (JDBCDataStore)DataStoreFinder.getDataStore(params);

JDBCDataStore連接參數(shù)

ParameterDescription
dbtypeMust be the string postgis
hostMachine name or IP address to connect to
portPort number to connect to, default 5432
schemaThe database schema to access
databaseThe database to connect to
userUser name
passwdPassword
loose bboxFlag controlling loose bbox comparisons, default is true
preparedStatementsFlag controlling whether prepared statements are used, default is false
encode functionsFlag controlling if some common functions can be encoded into their SQL equivalent

連接池參數(shù)

ParameterDescription
max connectionsMaximum number of connection the pool will hold at any time, default is 10
min connectionsMinimum number of connection the pool will hold at any time, default is 1
connection timeoutMaximum number of second the pool will wait when trying to obtain a connection, default is 20 seconds
validate connectionsFlag controlling if the pool should validate connections when a new connection is obtained
Max open prepared statementsMaximum number of prepared statements kept open and cached for each connection in the pool. Set to 0 to have unbounded caching, -1 to disable
Test while idlePeriodically test if the connections are still valid also while idle in the pool
Time between evictor runsNumber of seconds between idle object evictor runs. The default value is 300 seconds.
Min evictable timeNumber of seconds a connection needs to stay idle before the evictor starts to consider closing it
Evictor tests per runNumber of connections checked by the idle connection evictor for each of its runs. The default value is 3 connections.

過濾器-Filter

使用過濾器來定義要對(duì)其進(jìn)行操作的Feature集合。過濾器也可以組合成一個(gè)操作集合使用。簡(jiǎn)單說,過濾器相當(dāng)于SQL語句的WHERE子句中存在的信息。Filter有多個(gè)子類,實(shí)現(xiàn)了許多類型的過濾器,包括簡(jiǎn)單的屬性比較和空間查詢。

// 普通字段FilterFactory ff = CommonFactoryFinder.getFilterFactory();/** * field 字段名 * value 條件值 * geometry 條件幾何體 *  *  * matchCase 是否區(qū)分大小寫,默認(rèn)true-區(qū)分 * MatchAction(實(shí)現(xiàn)MultiValuedFilter的會(huì)有),匹配邏輯 * MatchAction.ANY-任何一個(gè)滿足,默認(rèn)值 * MatchAction.ALL-全部滿足 * MatchAction.ONE-只有一個(gè)滿足 * */PropertyIsEqualTo equal = ff.equal(ff.property(field), ff.literal(value), true);//等于PropertyIsLike like = ff.like(ff.property(field), "%keywords%");//模糊匹配PropertyIsNotEqualTo notEqualTo = ff.notEqual(ff.property(field), ff.literal(value));//不等于PropertyIsNull aNull = ff.isNull(ff.property(field));//nullPropertyIsGreaterThan greater = ff.greater(ff.property(field), ff.literal(value));// 大于PropertyIsGreaterThanOrEqualTo greaterOrEqual = ff.greaterOrEqual(ff.property(field), ff.literal(value));// 大于等于PropertyIsLessThan less = ff.less(ff.property(field), ff.literal(value));//小于PropertyIsLessThanOrEqualTo lessOrEqual = ff.lessOrEqual(ff.property(field), ff.literal(value));//小于等于PropertyIsBetween between = ff.between(ff.property(field), ff.literal(value), ff.literal(value));//在...之間During during = ff.during(ff.property(field), ff.literal(value));//在時(shí)間期間Before before = ff.before(ff.property(field), ff.literal(value));//在時(shí)間之前After after = ff.after(ff.property(field), ff.literal(value));//在時(shí)間之后// Geometry字段FilterFactory2 ff2 = CommonFactoryFinder.getFilterFactory2();Beyond beyond = ff2.beyond(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry), 100.0, Units.METRE.name);// 圖層幾何字段超出給定幾何100米距離的Contains contains = ff2.contains(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 圖層幾何字段包含給定幾何Within within = ff2.within(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 圖層幾何字段被給定幾何包含Intersects intersects = ff2.intersects(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 圖層幾何字段與給定幾何相交Disjoint disjoint = ff2.disjoint(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 圖層幾何字段與給定幾何不相交Touches touches = ff2.touches(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 圖層幾何字段與給定幾何相切// filter集合的邏輯關(guān)系,and并,or或,not非And and = ff.and(List.of(equal,like,beyond));//Or or = ff.or(List.of(notEqualTo,greater,contains));Not not = ff.not(during);// Function的實(shí)現(xiàn)類具體實(shí)現(xiàn)函數(shù),name-函數(shù)名,例如:min,strReplace,toWKTFunction function = ff.function(name,expr1,exprN);PropertyName property = ff.property(field);Literal v = ff.literal(value);Function min = ff.function("min", property, v);PropertyName property = ff.property(field);Literal search = ff.literal("search");Literal replace = ff.literal("replace");Literal all = ff.literal( true );Function replace = ff.function("strReplace", new Expression[]{property,search,replace,all});PropertyName property = ff.property(featureSource.schema.geometryDescriptor.localName);Function toWKT = ff.function("toWKT", property);

查詢

/** * tableName 表名 * filter 過濾器 * List propNames 字段名列表 *  * startIndex 起始位 * maxFeatures 最大條數(shù) * sortField 排序字段名 * */ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);//返回字段列List propertyNames = propNames.stream().map(ff::property).collect(Collectors.toList());Query query = new Query(tableName,filter,propertyNames);int count = featureSource.getCount(query);//計(jì)數(shù)// 分頁,倒序query.setStartIndex(startIndex);query.setMaxFeatures(maxFeatures);query.setSortBy(new SortByImpl(ff.property(sortField), SortOrder.DESCENDING));ContentFeatureCollection collection = featureSource.getFeatures(query);SimpleFeatureIterator iterator = collection.features();// SimpleFeatureIterator必須關(guān)閉,否則會(huì)造成內(nèi)存泄漏iterator.close();

新增

/*** tableName 圖層名* fieldName1 字段名* fieldValue1 字段值**/ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);SimpleFeatureStore store = (SimpleFeatureStore)featureSource;  // write access!SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(store.getSchema());featureBuilder.set(fieldName1,fieldValue1);featureBuilder.set(fieldNameN,fieldValueN);SimpleFeature feature = featureBuilder.buildFeature(null);ListFeatureCollection featureCollection = new ListFeatureCollection(store.getSchema(), List.of(feature));List addFeatures = store.addFeatures(featureCollection);

刪除

/**** typeName 圖層名* fliter 過濾條件**/ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);SimpleFeatureStore store = (SimpleFeatureStore)featureSource;  // write access!store.removeFeatures(filter);

修改

/*** * typeName 圖層名* names 修改字段名數(shù)組* values 修改值數(shù)組* fliter 過濾條件* names和values順序保持一致*/ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);SimpleFeatureStore store = (SimpleFeatureStore)featureSource;  // write access!store.modifyFeature(names, values, filter)

關(guān)鍵詞:

 

關(guān)于我們 - 聯(lián)系我們 - 版權(quán)聲明 - 招聘信息 - 友鏈交換

2014-2020  電腦商網(wǎng) 版權(quán)所有. All Rights Reserved.

備案號(hào):京ICP備2022022245號(hào)-1 未經(jīng)過本站允許,請(qǐng)勿將本站內(nèi)容傳播或復(fù)制.

聯(lián)系我們:435 226 40@qq.com

主站蜘蛛池模板: 日韩欧美一区二| 日韩亚洲欧美中文在线| 欧美一级电影久久| 精品一区二区中文字幕| 国产精品99久久久久久久久久久久| 国产精品久久久久久av福利| 精品国产欧美成人夜夜嗨| 97精品在线视频| 国产欧美欧洲在线观看| 97欧美精品一区二区三区| 日韩精品欧美专区| 国产乱子伦精品视频| 久久久成人av| 日韩wumaV| 亚洲精品中文字幕在线| 国产精品av免费| 国产美女精彩久久| 久久久精品国产网站| 奇米影视亚洲狠狠色 | 国产精品美女免费| 九九热精品视频| 久久中文精品视频| 国产成人精品999| 国产素人在线观看| 韩国成人一区| 久久综合五月天| 久久这里只有精品视频首页| 欧美日韩一区二区三区在线观看免| 一区二区三区四区不卡| 91九色国产社区在线观看| 97精品一区二区视频在线观看| 大波视频国产精品久久| 91精品视频免费看| 在线视频精品一区| 亚洲不卡中文字幕无码| 色综合色综合网色综合| 日韩中文不卡| 欧美亚洲另类制服自拍| 欧美日韩喷水| 奇米精品一区二区三区| 久久久综合av|