真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java操作MongoDB插入數(shù)據(jù)進(jìn)行模糊查詢(xún)與in查詢(xún)功能

由于需要用MongoDB緩存數(shù)據(jù),所以自己寫(xiě)了一套公共的存放和讀取方法

成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專(zhuān)注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開(kāi)發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開(kāi)發(fā),軟件開(kāi)發(fā),小程序開(kāi)發(fā),10年建站對(duì)宣傳片制作等多個(gè)行業(yè),擁有多年的網(wǎng)站推廣經(jīng)驗(yàn)。

具體如下:

存放mongodb:

/**
   * 公共方法:設(shè)置Object類(lèi)型緩存
   * @author shijing
   * @param param
   * @param sysGuid
   */
  public void setObjData(Map param, String sysGuid, String enumBpd){
    DBObject dbObject = new BasicDBObject();
    dbObject.putAll(param);
    String collectionName = EnumBpd.getBpdType(enumBpd) + sysGuid;
    mongoDao.insertToCol(dbObject,collectionName);
  }
  /**
   * 公共方法:設(shè)置List緩存
   * @author shijing
   * @param paramList
   * @param sysGuid
   */
  public void setListData(List> paramList, String sysGuid, String enumBpd){
    List list = new ArrayList<>();
    if(CollectionUtils.isNotNull(paramList)){
      for (Map param : paramList){
        DBObject dbObject = new BasicDBObject();
        dbObject.putAll(param);
        list.add(dbObject);
      }
    }
    String collectionName = EnumBpd.getBpdType(enumBpd) + sysGuid;
    mongoDao.insertToCol(list,collectionName);

mongoDao里面的方法:

public void insertToCol(DBObject document, String collectionName) {
    dropCol(collectionName);
    DBCollection dbCollection = mongoTemplate.createCollection(collectionName);
    dbCollection.insert(document);
  }
  public void insertToCol(List documents, String collectionName) {
    dropCol(collectionName);
    DBCollection dbCollection = mongoTemplate.createCollection(collectionName);
    dbCollection.insert(documents);
  }

讀取方法

/**
   * 通過(guò)關(guān)鍵字模糊查詢(xún)問(wèn)題和答案庫(kù)
   * @param param
   * @return
   */
  @Override
  public List> searchQuestionAndAnswerByKeyword(Map param) {
    List> searchList = new ArrayList<>();
    Map userInfo = SessionUtils.getUserInfo();
    String sysGuid = userInfo.get("sys_guid").toString();
    String collectionName = EnumBpd.getBpdType(EnumBpd.HELP_PAGE_LIST.getType())+sysGuid;
    //注釋里面這種方式雖然能模糊查詢(xún),但是容易漏掉數(shù)據(jù),切記切記?。。?    //Pattern pattern = Pattern.compile("^.*" + param.get("keyword") +".*$", Pattern.CASE_INSENSITIVE);
    BasicDBObject query= new BasicDBObject();
    //模糊查詢(xún)的字段設(shè)置
    query.put("page_html", Pattern.compile((String) param.get("keyword")));
    DBCursor dbCursor = mongoDao.findAll(query,collectionName);
    List list = dbCursor.toArray();
    for (DBObject dbObject: list){
      searchList.add(dbObject.toMap());
    }
    //模糊查到的數(shù)據(jù)進(jìn)行組裝
    return getQuestionAndAnswerList(searchList);
  }
  /**
   * 公共方法:批量—— in方法查詢(xún)List數(shù)據(jù)
   * @author shijing
   * @param ids id集合
   * @param paramMap 其他參數(shù)
   * @param columnName in字段列名
   * @param collectionName 表名
   * @return
   */
  @Override
  public List> batchSearchPageListByIds(List ids, Map paramMap, String columnName, String collectionName) {
    List> searchList = new ArrayList<>();
    BasicDBObject query= new BasicDBObject();
    //批量查詢(xún),in
    if (CollectionUtils.isNotEmpty(ids)){
      BasicDBList values = new BasicDBList();
      values.addAll(ids);
      query.put(columnName, new BasicDBObject("$in",values));
    }
    //拼接參數(shù)
    if(MapUtils.isNotEmpty(paramMap)){
      for (String mapKey: paramMap.keySet()){
        query.put(mapKey, paramMap.get(mapKey));
      }
    }
    DBCursor dbCursor = mongoDao.findAll(query,collectionName);
    List list = dbCursor.toArray();
    if (dbCursor!=null && dbCursor.size()>0){
      for (DBObject dbObject: list){
        searchList.add(dbObject.toMap());
      }
    }
    return searchList;
  }
  /**
   * 公共方法:通過(guò)參數(shù)獲取List數(shù)據(jù)
   * @author shijing
   * @param paramMap 參數(shù)
   * @param collectionName  表名
   * @return
   */
  @Override
  public List> getListByParam(Map paramMap,String collectionName){
    List> searchList = new ArrayList<>();
    BasicDBObject query= new BasicDBObject();
    //拼接參數(shù)
    if(MapUtils.isNotEmpty(paramMap)){
      for (String mapKey: paramMap.keySet()){
        query.put(mapKey, paramMap.get(mapKey));
      }
    }
    DBCursor dbCursor = mongoDao.findAll(query,collectionName);
    List list = dbCursor.toArray();
    if (dbCursor!=null && dbCursor.size()>0){
      for (DBObject dbObject: list){
        searchList.add(dbObject.toMap());
      }
    }
    return searchList;
  }
  /**
   * 公共方法:通過(guò)參數(shù)獲取Object數(shù)據(jù)
   * @author shijing
   * @param paramMap
   * @param collectionName 表名
   * @return
   */
  @Override
  public Map getObjectByParam(Map paramMap, String collectionName) {
    Map webSiteInfo = new HashMap<>();
    BasicDBObject query= new BasicDBObject();
    //拼接參數(shù)
    if(MapUtils.isNotEmpty(paramMap)){
      for (String mapKey: paramMap.keySet()){
        query.put(mapKey, paramMap.get(mapKey));
      }
    }
    DBObject dbObject = mongoDao.findOne(query,collectionName);
    if(dbObject!=null){
      return dbObject.toMap();
    }
    return webSiteInfo;
  }

注意事項(xiàng):

mongodb模糊查詢(xún)時(shí)

Pattern pattern = Pattern.compile("^.*" + param.get("keyword") +".*$"

這種方式存在bug, 容易漏掉數(shù)據(jù)

應(yīng)該使用下面這種方式:

query.put("page_html", Pattern.compile((String) param.get("keyword")));

先記錄到這吧,有需要在補(bǔ)充,批量in方法也在上述代碼里面。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接


當(dāng)前名稱(chēng):Java操作MongoDB插入數(shù)據(jù)進(jìn)行模糊查詢(xún)與in查詢(xún)功能
文章路徑:http://weahome.cn/article/pceogj.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部