c83b5b39
Liu Haoyu
项目创建, 集成spring-se...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
package com.objecteye.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJson;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class MongoTemplates {
@Autowired
private MongoTemplate mongoTemplate;
public void save(Polygon polygon){
mongoTemplate.save(polygon);
}
public void saveRegions(List<GisRegion> gisRegionList){
mongoTemplate.insert(gisRegionList,GisRegion.class);
}
public <T> T findById(Class<T> entityClass, String id) {
return mongoTemplate.findById(id, entityClass);
}
public <T> List<T> findAll(Class<T> entityClass) {
return mongoTemplate.findAll(entityClass);
}
public <T> void remove(T entity) {
mongoTemplate.remove(entity);
}
public <T> void add(T entity) {
mongoTemplate.insert(entity);
}
public <T> void addAll(List<T> entity) {
mongoTemplate.insertAll(entity);
}
public <T> void saveOrUpdate(T entity) {
mongoTemplate.save(entity);
}
public <T> T findOne(Class<T> entityClass) {
return mongoTemplate.findOne(new Query(), entityClass);
}
public List<Polygon> findIntersective(GeoJson geoJson){
Query query=new Query(Criteria.where("geometry").intersects(geoJson));
List<Polygon> list=mongoTemplate.find(query,Polygon.class);
return list;
}
public boolean isExistIntersective(GeoJson geoJson){
Query query=new Query(Criteria.where("geometry").intersects(geoJson).and("_id").is(100000));
boolean res=mongoTemplate.exists(query,GisRegion.class);
return res;
}
/*public <T> T findBy(Class<T> entityClass, String id) {
Criteria cri = new Criteria();
// 设置条件(注意:设置查询的值类型必须和mongodb中类型一致)
cri.and("status").is("0"); // 类型为String,类似sql中 status = '0'
cri.and("boolRelation").is(0D); // 类型为Double,类似sql中 boolRelation = 0
cri.and("enforType").regex("01.*"); // 正则表达匹配,类似右模糊查询,sql中 like '01%'
// lt gt lte gte
return null;
}*/
//mongodb查询根据指定条件对象
/* public <T> T findQuery(Class<T> entityClass, BasicDBObject basicDBObject) {
// 分、 排序、按时间查询
Query query = new Query();
//必须条件
// Criteria c = Criteria.where("VINID").is(Map.get(vin));
Criteria c = new Criteria();
//范围条件
if (!StringUtils.isEmpty(start) && StringUtils.isEmpty(end)) {
c.and("TIME1").gte(GetTime1(start));
} else if (StringUtils.isEmpty(start) && !StringUtils.isEmpty(end)) {
c.and("TIME1").lte(GetTime1(end));
} else if (!StringUtils.isEmpty(start) && !StringUtils.isEmpty(end)) {
//对同一个属性加两次限制需这样操作
c.andOperator(
c.where("TIME1").gte(GetTime1(start)),
c.where("TIME1").lte(GetTime1(end))
);
}
query.addCriteria(c);
//总数
int num = (int) mongoTemplate.count(query, CarDataEx.class, "jmevTest");
System.out.println("总数:" + num);
//分页
query.skip((page - 1) * rows).limit(rows);
//排序
query.with(new Sort(Sort.Direction.DESC, "TIME1","TIME2"));
//query.with(new Sort(properties));
List<T> jmevTest = (List<T>) mongoTemplate.find(query, CarDataEx.class, "jmevTest");
}*/
}
|