91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpingBoot配置MongoDb

發布時間:2020-08-06 01:52:10 來源:網絡 閱讀:248 作者:KylneZ 欄目:編程語言

  之前有個項目,用的是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);
  1. 查詢
    1.查找所有

  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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荔波县| 巴中市| 光山县| 聊城市| 金寨县| 木兰县| 西安市| 晋州市| 榆树市| 沁阳市| 康马县| 鄂尔多斯市| 柘荣县| 内黄县| 大渡口区| 内江市| 会泽县| 佛坪县| 永昌县| 红安县| 东海县| 安图县| 汉阴县| 河源市| 绥芬河市| 二连浩特市| 澜沧| 阜南县| 洛南县| 丽水市| 双柏县| 二连浩特市| 扎囊县| 肥东县| 武宣县| 合作市| 灯塔市| 通河县| 兴和县| 乾安县| 彩票|