国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java操作MongoDB插入數據進行模糊查詢與in查詢功能

Java操作MongoDB插入數據進行模糊查詢與in查詢功能

2021-06-19 11:14執筆記憶的空白 Java教程

今天小編就為大家分享一篇關于Java操作MongoDB插入數據進行模糊查詢與in查詢功能,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

由于需要用mongodb緩存數據,所以自己寫了一套公共的存放和讀取方法

具體如下:

存放mongodb:

?
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
/**
   * 公共方法:設置object類型緩存
   * @author shijing
   * @param param
   * @param sysguid
   */
  public void setobjdata(map<string,object> param, string sysguid, string enumbpd){
    dbobject dbobject = new basicdbobject();
    dbobject.putall(param);
    string collectionname = enumbpd.getbpdtype(enumbpd) + sysguid;
    mongodao.inserttocol(dbobject,collectionname);
  }
  /**
   * 公共方法:設置list緩存
   * @author shijing
   * @param paramlist
   * @param sysguid
   */
  public void setlistdata(list<map<string,object>> paramlist, string sysguid, string enumbpd){
    list<dbobject> list = new arraylist<>();
    if(collectionutils.isnotnull(paramlist)){
      for (map<string,object> param : paramlist){
        dbobject dbobject = new basicdbobject();
        dbobject.putall(param);
        list.add(dbobject);
      }
    }
    string collectionname = enumbpd.getbpdtype(enumbpd) + sysguid;
    mongodao.inserttocol(list,collectionname);

mongodao里面的方法:

?
1
2
3
4
5
6
7
8
9
10
public void inserttocol(dbobject document, string collectionname) {
    dropcol(collectionname);
    dbcollection dbcollection = mongotemplate.createcollection(collectionname);
    dbcollection.insert(document);
  }
  public void inserttocol(list<dbobject> documents, string collectionname) {
    dropcol(collectionname);
    dbcollection dbcollection = mongotemplate.createcollection(collectionname);
    dbcollection.insert(documents);
  }

讀取方法

?
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
/**
   * 通過關鍵字模糊查詢問題和答案庫
   * @param param
   * @return
   */
  @override
  public list<map<string, object>> searchquestionandanswerbykeyword(map<string, object> param) {
    list<map<string,object>> searchlist = new arraylist<>();
    map<string,object> userinfo = sessionutils.getuserinfo();
    string sysguid = userinfo.get("sys_guid").tostring();
    string collectionname = enumbpd.getbpdtype(enumbpd.help_page_list.gettype())+sysguid;
    //注釋里面這種方式雖然能模糊查詢,但是容易漏掉數據,切記切記!!!
    //pattern pattern = pattern.compile("^.*" + param.get("keyword") +".*$", pattern.case_insensitive);
    basicdbobject query= new basicdbobject();
    //模糊查詢的字段設置
    query.put("page_html", pattern.compile((string) param.get("keyword")));
    dbcursor dbcursor = mongodao.findall(query,collectionname);
    list<dbobject> list = dbcursor.toarray();
    for (dbobject dbobject: list){
      searchlist.add(dbobject.tomap());
    }
    //模糊查到的數據進行組裝
    return getquestionandanswerlist(searchlist);
  }
  /**
   * 公共方法:批量—— in方法查詢list數據
   * @author shijing
   * @param ids id集合
   * @param parammap 其他參數
   * @param columnname in字段列名
   * @param collectionname 表名
   * @return
   */
  @override
  public list<map<string, object>> batchsearchpagelistbyids(list<string> ids, map<string,
      object> parammap, string columnname, string collectionname) {
    list<map<string,object>> searchlist = new arraylist<>();
    basicdbobject query= new basicdbobject();
    //批量查詢,in
    if (collectionutils.isnotempty(ids)){
      basicdblist values = new basicdblist();
      values.addall(ids);
      query.put(columnname, new basicdbobject("$in",values));
    }
    //拼接參數
    if(maputils.isnotempty(parammap)){
      for (string mapkey: parammap.keyset()){
        query.put(mapkey, parammap.get(mapkey));
      }
    }
    dbcursor dbcursor = mongodao.findall(query,collectionname);
    list<dbobject> list = dbcursor.toarray();
    if (dbcursor!=null && dbcursor.size()>0){
      for (dbobject dbobject: list){
        searchlist.add(dbobject.tomap());
      }
    }
    return searchlist;
  }
  /**
   * 公共方法:通過參數獲取list數據
   * @author shijing
   * @param parammap 參數
   * @param collectionname  表名
   * @return
   */
  @override
  public list<map<string, object>> getlistbyparam(map<string, object> parammap,string collectionname){
    list<map<string,object>> searchlist = new arraylist<>();
    basicdbobject query= new basicdbobject();
    //拼接參數
    if(maputils.isnotempty(parammap)){
      for (string mapkey: parammap.keyset()){
        query.put(mapkey, parammap.get(mapkey));
      }
    }
    dbcursor dbcursor = mongodao.findall(query,collectionname);
    list<dbobject> list = dbcursor.toarray();
    if (dbcursor!=null && dbcursor.size()>0){
      for (dbobject dbobject: list){
        searchlist.add(dbobject.tomap());
      }
    }
    return searchlist;
  }
  /**
   * 公共方法:通過參數獲取object數據
   * @author shijing
   * @param parammap
   * @param collectionname 表名
   * @return
   */
  @override
  public map<string, object> getobjectbyparam(map<string, object> parammap, string collectionname) {
    map<string,object> websiteinfo = new hashmap<>();
    basicdbobject query= new basicdbobject();
    //拼接參數
    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;
  }

注意事項:

mongodb模糊查詢時

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

這種方式存在bug, 容易漏掉數據

應該使用下面這種方式:

?
1
query.put("page_html", pattern.compile((string) param.get("keyword")));

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

原文鏈接:https://blog.csdn.net/moneyshi/article/details/81567819

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区精品久久岳 | 一区二区免费看 | 国产成人精品一区二区在线 | 日韩在线二区 | 成人午夜精品一区二区三区 | 久久亚洲一区二区三区明星换脸 | 亚洲字幕成人中文在线观看 | 亚洲电影一区二区三区 | 成人午夜精品一区二区三区 | 国产精品99久久 | 日韩国产一区二区三区 | 免费av一区二区三区 | 欧美日本韩国一区二区 | 国产精品成人在线 | 亚洲欧美视频一区 | 在线a人片免费观看视频 | 99热热热 | 欧洲亚洲精品久久久久 | 国产日韩精品一区 | 午夜av影视 | 精品无码久久久久久国产 | 日韩国产 | 国产日韩视频 | 羞羞的视频在线免费观看 | 久久99精品国产麻豆婷婷洗澡 | 国产精品久久久久久吹潮 | 亚洲色图在线播放 | 欧美精品一区在线 | 国产高清视频在线观看 | 欧美精品一区二区三区在线 | 色播开心网 | 一区中文字幕 | 欧美久久久 | 午夜视频在线免费观看 | 国产一级在线免费观看 | 成人国产精品免费观看 | 午夜视频 | 国产一区二区三区视频 | 亚洲精选久久 | 久久极品| 中文学幕专区 |