您好,登錄后才能下訂單哦!
之前有個項目,用的是Springboot框架,對接的數據庫是mongodb,當時花了一些時間去做這個配置MongoDB的連接,現在把這個過程記錄下來,以免遺忘。
一、在pom中添加依賴。
<!-- 增加mongodb支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>1.5.9.RELEASE</version>
</dependency>
二、配置數據源
在項目中,使用的配置文件是yaml格式的,所以配置信息如下:
spring:
data:
mongodb:
uri: mongodb://地址
如果使用的是properties格式的話,配置信息則是;spring.data.mongodb.uri= mongodb://地址
三、在實體中添加注解
在實體添加@Document注解,collection= "對應的表名"。
在屬性上添加@Filed注解,值為對應的字段名。
@Getter
@Setter
@Document(collection = "User")
public class User {
/*
用戶id:
*/
@Field("id")
private String id;
/*
用戶名
*/
@Field("UserName")
private String userName;
/*
性別
*/
@Field("sex")
private String sex;
}
四、在業務層使用MongoDb的方法:
@Service
public class UserServiceImpl implements UserService {
@Resource
private MongoTemplate mongoTemplate;
@Override
public long getCount() {
Query query = new Query();
long count = mongoTemplate.count(query,User.class);
return count;
}
}
五、MongoTemplate常使用的方法
1.插入
` mongoTemplate.insert(Object);`
2.刪除
Query query=new Query(Criteria.where("_id").is(id));
mongoTemplate.remove(query,AutomaticAlarm.class);
3. 修改
```
Query query=new Query(Criteria.where("_id").is(id));
Update update = Update.update("要更新的字段", "更新的值");
mongoTemplate.updateFirst(query, update, Object.class);
mongoTemplate.findAll(Object.class);
2.條件查詢(具體某個字段的值)
Query query=new Query(Criteria.where("字段1").is("值1"));
mongoTemplate.find(query, Object.class);
3.條件查詢(大于小于)
Criteria criteria = Criteria.where("字段").gte(某個值).lte(某個值);
Query query = new Query(criteria);
mongoTemplate.find(query, Object.class);
4.模糊查詢
Pattern pattern = Pattern.compile("^." + searchKey + ".$");//這里時使用的是正則匹配,searchKey是關鍵字,接口傳參,也可以自己定義。
Criteria criteria = Criteria.where("_id").regex(pattern);
mongoTemplate.find(query, Object.class);
5.分頁查詢
Query query = new Query();
query.skip("跳過的數據條數").limit("一頁的數據條數");
mongoTemplate.find(query, Object.class);
6.聚合查詢
Aggregation aggregation1 = Aggregation.newAggregation(Aggregation.group("sex").count().as("peopleCount"));//這里的聚合條件由自己定義
AggregationResults<BasicDBObject> outputTypeCount1 = mongoTemplate.aggregate(aggregation1, "User", BasicDBObject.class);//取出的結果需要自行進行處理,比如可以用getMappedResults來轉換
六、增強配置
如果我們在項目中需要管理MongoDB的最大連接時長、socket保持活躍、最大等待時長等,那么我們在pom文件中需要引入一個增強管理包。
<!-- 增加mongoplus支持 -->
<dependency>
<groupId>com.spring4all</groupId>
<artifactId>mongodb-plus-spring-boot-starter</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
同時在項目啟動類SpringBootMainApplication上添加一個注解@EnableMongoPlus。
我們就可以在配置文件中添加這些配置了。
spring:
data:
mongodb:
uri: mongodb://地址
option:
socket-keep-alive: true
max-connection-idle-time: 60000
connect-timeout: 36000
min-connection-per-host: 5
threads-allowed-to-block-for-connection-multiplier: 5
max-wait-time: 120000
socket-timeout: 0
max-connection-life-time: 0
heartbeat-socket-timeout: 36000
heartbeat-connect-timeout: 36000
min-heartbeat-frequency: 5
heartbeat-frequency: 10
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。