最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java操作mongodb實(shí)現(xiàn)CURD功能實(shí)例

 更新時間:2013年12月20日 09:36:00   作者:  
mongodb支持多種語言,并且提供了多種語言的驅(qū)動,本文使用java操作mongodb實(shí)現(xiàn)CURD功能,大家參考使用吧

先下載相應(yīng)的驅(qū)動:官網(wǎng)上下載:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
本文使用mongo-2.10.1.jar版本:

下面有詳細(xì)代碼的,每個方法可以單獨(dú)執(zhí)行。其中為了方便運(yùn)行,每個方法中都重新鏈接數(shù)據(jù)庫,而沒有再提出來,因?yàn)樵诖说哪康氖菫榱苏J(rèn)識mongodb而已。

復(fù)制代碼 代碼如下:

package com.mongo.dao;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;

/**
* 對基本實(shí)體的存儲測試
* @author lhy
*
*/
public class EntityTest {

     public static void main(String[] args) throws Exception{
          delete();
     }

     /**
     * 保存實(shí)體對象
     * @throws Exception
     */
     public static void saveEntity() throws Exception{
          //第一:實(shí)例化mongo對象,連接mongodb服務(wù)器  包含所有的數(shù)據(jù)庫

          //默認(rèn)構(gòu)造方法,默認(rèn)是連接本機(jī),端口號,默認(rèn)是27017
          //相當(dāng)于Mongo mongo =new Mongo("localhost",27017)
          Mongo mongo =new Mongo();

          //第二:連接具體的數(shù)據(jù)庫
          //其中參數(shù)是具體數(shù)據(jù)庫的名稱,若服務(wù)器中不存在,會自動創(chuàng)建
          DB db=mongo.getDB("myMongo");

          //第三:操作具體的表
         //在mongodb中沒有表的概念,而是指集合
          //其中參數(shù)是數(shù)據(jù)庫中表,若不存在,會自動創(chuàng)建
          DBCollection collection=db.getCollection("user");

          //添加操作
          //在mongodb中沒有行的概念,而是指文檔
          BasicDBObject document=new BasicDBObject();

          document.put("id", 1);
          document.put("name", "小明");
//          //然后保存到集合中
//     //     collection.insert(document);

        
          //當(dāng)然我也可以保存這樣的json串
/*          {
               "id":1,
               "name","小明",
               "address":
               {
               "city":"beijing",
               "code":"065000"
               }
          }*/
          //實(shí)現(xiàn)上述json串思路如下:
          //第一種:類似xml時,不斷添加
          BasicDBObject addressDocument=new BasicDBObject();
          addressDocument.put("city", "beijing");
          addressDocument.put("code", "065000");
          document.put("address", addressDocument);
          //然后保存數(shù)據(jù)庫中
          collection.insert(document);

          //第二種:直接把json存到數(shù)據(jù)庫中
/*          String jsonTest="{'id':1,'name':'小明',"+
                   "'address':{'city':'beijing','code':'065000'}"+
                    "}";
         DBObject dbobjct=(DBObject)JSON.parse(jsonTest);
         collection.insert(dbobjct);*/   
     }

     /**
     * 遍歷所有的
     * @throws Exception
     */
     public static void selectAll() throws Exception{
          //第一:實(shí)例化mongo對象,連接mongodb服務(wù)器  包含所有的數(shù)據(jù)庫

          //默認(rèn)構(gòu)造方法,默認(rèn)是連接本機(jī),端口號,默認(rèn)是27017
          //相當(dāng)于Mongo mongo =new Mongo("localhost",27017)
          Mongo mongo =new Mongo();

          //第二:連接具體的數(shù)據(jù)庫
          //其中參數(shù)是具體數(shù)據(jù)庫的名稱,若服務(wù)器中不存在,會自動創(chuàng)建
          DB db=mongo.getDB("myMongo");

          //第三:操作具體的表
         //在mongodb中沒有表的概念,而是指集合
          //其中參數(shù)是數(shù)據(jù)庫中表,若不存在,會自動創(chuàng)建
          DBCollection collection=db.getCollection("user");

          //查詢操作
          //查詢所有
          //其中類似access數(shù)據(jù)庫中游標(biāo)概念
          DBCursor cursor=collection.find();
          System.out.println("mongodb中的user表結(jié)果如下:");
          while(cursor.hasNext()){
               System.out.println(cursor.next());
          }
     }

     /**
     * 根據(jù)條件查詢
     * @throws Exception
     */
     public static void selectPart() throws Exception{
          //第一:實(shí)例化mongo對象,連接mongodb服務(wù)器  包含所有的數(shù)據(jù)庫

          //默認(rèn)構(gòu)造方法,默認(rèn)是連接本機(jī),端口號,默認(rèn)是27017
          //相當(dāng)于Mongo mongo =new Mongo("localhost",27017)
          Mongo mongo =new Mongo();

          //第二:連接具體的數(shù)據(jù)庫
          //其中參數(shù)是具體數(shù)據(jù)庫的名稱,若服務(wù)器中不存在,會自動創(chuàng)建
          DB db=mongo.getDB("myMongo");

          //第三:操作具體的表
         //在mongodb中沒有表的概念,而是指集合
          //其中參數(shù)是數(shù)據(jù)庫中表,若不存在,會自動創(chuàng)建
          DBCollection collection=db.getCollection("user");

   
          //可以直接put
          BasicDBObject queryObject=new BasicDBObject();
          queryObject.put("id", 1);
          DBCursor querycursor=collection.find(queryObject);
          System.out.println("條件查詢?nèi)缦拢?);
          while(querycursor.hasNext()){
               System.out.println(querycursor.next());
          }
     }

     /**
     * 更新操作
     * 更新一條記錄
     * @throws Exception
     */
     public static void update()throws Exception{
          //第一:實(shí)例化mongo對象,連接mongodb服務(wù)器  包含所有的數(shù)據(jù)庫

          //默認(rèn)構(gòu)造方法,默認(rèn)是連接本機(jī),端口號,默認(rèn)是27017
          //相當(dāng)于Mongo mongo =new Mongo("localhost",27017)
          Mongo mongo =new Mongo();

          //第二:連接具體的數(shù)據(jù)庫
          //其中參數(shù)是具體數(shù)據(jù)庫的名稱,若服務(wù)器中不存在,會自動創(chuàng)建
          DB db=mongo.getDB("myMongo");

          //第三:操作具體的表
         //在mongodb中沒有表的概念,而是指集合
          //其中參數(shù)是數(shù)據(jù)庫中表,若不存在,會自動創(chuàng)建
          DBCollection collection=db.getCollection("user");

          //更新后的對象
//          第一種更新方式
          BasicDBObject newBasicDBObject =new BasicDBObject();
          newBasicDBObject.put("id", 2);
          newBasicDBObject.put("name", "小紅");
          collection.update(new BasicDBObject().append("id", 1),newBasicDBObject);

//          第二種更新方式
//          更新某一個字段
//          BasicDBObject newBasicDBObject =new BasicDBObject().append("$set",new BasicDBObject().append("name", "小紅") );
//          collection.update(new BasicDBObject().append("id", 1).append("name", "小明"),newBasicDBObject);

        
          DBCursor querycursor1=collection.find();
          System.out.println("更新后結(jié)果如下:");
          while(querycursor1.hasNext()){
               System.out.println(querycursor1.next());
          }
     }

     /**
     * 刪除文檔,其中包括刪除全部或刪除部分
     * @throws Exception
     */
     public static void delete() throws Exception{

          //第一:實(shí)例化mongo對象,連接mongodb服務(wù)器  包含所有的數(shù)據(jù)庫

          //默認(rèn)構(gòu)造方法,默認(rèn)是連接本機(jī),端口號,默認(rèn)是27017
          //相當(dāng)于Mongo mongo =new Mongo("localhost",27017)
          Mongo mongo =new Mongo();

          //第二:連接具體的數(shù)據(jù)庫
          //其中參數(shù)是具體數(shù)據(jù)庫的名稱,若服務(wù)器中不存在,會自動創(chuàng)建
          DB db=mongo.getDB("myMongo");

          //第三:操作具體的表
         //在mongodb中沒有表的概念,而是指集合
          //其中參數(shù)是數(shù)據(jù)庫中表,若不存在,會自動創(chuàng)建
          DBCollection collection=db.getCollection("user");
          BasicDBObject queryObject1=new BasicDBObject();
          queryObject1.put("id", 2);
          queryObject1.put("name","小紅");

          //刪除某一條記錄
         collection.remove(queryObject1);
          //刪除全部
          //collection.drop();

          DBCursor cursor1=collection.find();
          System.out.println("刪除后的結(jié)果如下:");
          while(cursor1.hasNext()){
               System.out.println(cursor1.next());
          }

   
     }

   
}

相關(guān)文章

  • Java Spring Boot實(shí)現(xiàn)簡易掃碼登錄詳解

    Java Spring Boot實(shí)現(xiàn)簡易掃碼登錄詳解

    這篇文章主要為大家詳細(xì)介紹了java Spring Boot實(shí)現(xiàn)app掃碼登錄功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-09-09
  • Java應(yīng)用打包后運(yùn)行需要注意編碼問題

    Java應(yīng)用打包后運(yùn)行需要注意編碼問題

    這篇文章主要介紹了 Java應(yīng)用打包后運(yùn)行需要注意編碼問題的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • spring boot打jar包發(fā)布的方法

    spring boot打jar包發(fā)布的方法

    這篇文章主要介紹了spring boot打jar包發(fā)布的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Java Selenium中的鼠標(biāo)控制操作

    詳解Java Selenium中的鼠標(biāo)控制操作

    本文主要講解如何用java Selenium 控制鼠標(biāo)在瀏覽器上的操作方法。主要列舉的代碼示例,大家可以自己上代碼執(zhí)行操作看效果,希望對大家有所幫助
    2023-01-01
  • Spring事務(wù)注解@Transactional失效的八種場景分析

    Spring事務(wù)注解@Transactional失效的八種場景分析

    最近在開發(fā)采用Spring框架的項(xiàng)目中,使用了@Transactional注解,但發(fā)現(xiàn)事務(wù)注解失效了,所以這篇文章主要給大家介紹了關(guān)于Spring事務(wù)注解@Transactional失效的八種場景,需要的朋友可以參考下
    2021-05-05
  • Java IO文件過濾器對命令設(shè)計(jì)模式的使用

    Java IO文件過濾器對命令設(shè)計(jì)模式的使用

    java io流里面使用到了很多的設(shè)計(jì)模式,最典型的就是裝飾模式,還有命令模式,下面分兩部分來講Java IO文件過濾器對命令設(shè)計(jì)模式的使用,一起看看吧
    2017-06-06
  • 詳解堆排序算法原理及Java版的代碼實(shí)現(xiàn)

    詳解堆排序算法原理及Java版的代碼實(shí)現(xiàn)

    如果將堆理解為二叉樹,那么樹中任一非葉結(jié)點(diǎn)的關(guān)鍵字均不大于(或不小于)其左右孩子(若存在)結(jié)點(diǎn)的關(guān)鍵字,堆排序的時間復(fù)雜度為O(N*logN),這里我們就來詳解堆排序算法原理及Java版的代碼實(shí)現(xiàn)
    2016-06-06
  • java語言中封裝類代碼示例

    java語言中封裝類代碼示例

    這篇文章主要介紹了java語言中封裝類,涉及相關(guān)代碼示例及結(jié)果分析,以及封裝的好處簡單介紹,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • java使用正則表達(dá)式判斷手機(jī)號的方法示例

    java使用正則表達(dá)式判斷手機(jī)號的方法示例

    這篇文章主要介紹了java使用正則表達(dá)式判斷手機(jī)號的方法,分析了手機(jī)號碼段的原理及java使用正則表達(dá)式針對手機(jī)號的匹配操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • elasticsearch節(jié)點(diǎn)的transport請求發(fā)送處理分析

    elasticsearch節(jié)點(diǎn)的transport請求發(fā)送處理分析

    這篇文章主要為大家介紹了elasticsearch節(jié)點(diǎn)的transport請求發(fā)送處理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評論

中西区| 盐边县| 乌兰县| 长岛县| 梁山县| 家居| 渝北区| 宣武区| 洱源县| 加查县| 大庆市| 永平县| 石家庄市| 中山市| 马龙县| 洛扎县| 栾城县| 定远县| 天峨县| 苍南县| 涞水县| 涟水县| 本溪市| 芷江| 固原市| 民勤县| 遂昌县| 高雄县| 顺昌县| 长治县| 共和县| 宁陵县| 天台县| 汨罗市| 芦溪县| 龙里县| 开阳县| 恩平市| 三台县| 交城县| 荆门市|