zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java操作mongodb实现CURD功能实例

JAVAMongoDB实例 实现 操作 功能 CURD
2023-06-13 09:15:14 时间

先下载相应的驱动:官网上下载:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
本文使用mongo-2.10.1.jar版本:

下面有详细代码的,每个方法可以单独执行。其中为了方便运行,每个方法中都重新链接数据库,而没有再提出来,因为在此的目的是为了认识mongodb而已。

复制代码代码如下:


packagecom.mongo.dao;
importcom.mongodb.BasicDBObject;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.Mongo;

/**
*对基本实体的存储测试
*@authorlhy
*
*/
publicclassEntityTest{

    publicstaticvoidmain(String[]args)throwsException{
         delete();
    }

    /**
    *保存实体对象
    *@throwsException
    */
    publicstaticvoidsaveEntity()throwsException{
         //第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库

         //默认构造方法,默认是连接本机,端口号,默认是27017
         //相当于Mongomongo=newMongo("localhost",27017)
         Mongomongo=newMongo();

         //第二:连接具体的数据库
         //其中参数是具体数据库的名称,若服务器中不存在,会自动创建
         DBdb=mongo.getDB("myMongo");

         //第三:操作具体的表
        //在mongodb中没有表的概念,而是指集合
         //其中参数是数据库中表,若不存在,会自动创建
         DBCollectioncollection=db.getCollection("user");

         //添加操作
         //在mongodb中没有行的概念,而是指文档
         BasicDBObjectdocument=newBasicDBObject();

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

        
         //当然我也可以保存这样的json串
/*         {
              "id":1,
              "name","小明",
              "address":
              {
              "city":"beijing",
              "code":"065000"
              }
         }*/
         //实现上述json串思路如下:
         //第一种:类似xml时,不断添加
         BasicDBObjectaddressDocument=newBasicDBObject();
         addressDocument.put("city","beijing");
         addressDocument.put("code","065000");
         document.put("address",addressDocument);
         //然后保存数据库中
         collection.insert(document);

         //第二种:直接把json存到数据库中
/*         StringjsonTest="{"id":1,"name":"小明","+
                  ""address":{"city":"beijing","code":"065000"}"+
                   "}";
        DBObjectdbobjct=(DBObject)JSON.parse(jsonTest);
        collection.insert(dbobjct);*/   
    }

    /**
    *遍历所有的
    *@throwsException
    */
    publicstaticvoidselectAll()throwsException{
         //第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库

         //默认构造方法,默认是连接本机,端口号,默认是27017
         //相当于Mongomongo=newMongo("localhost",27017)
         Mongomongo=newMongo();

         //第二:连接具体的数据库
         //其中参数是具体数据库的名称,若服务器中不存在,会自动创建
         DBdb=mongo.getDB("myMongo");

         //第三:操作具体的表
        //在mongodb中没有表的概念,而是指集合
         //其中参数是数据库中表,若不存在,会自动创建
         DBCollectioncollection=db.getCollection("user");

         //查询操作
         //查询所有
         //其中类似access数据库中游标概念
         DBCursorcursor=collection.find();
         System.out.println("mongodb中的user表结果如下:");
         while(cursor.hasNext()){
              System.out.println(cursor.next());
         }
    }

    /**
    *根据条件查询
    *@throwsException
    */
    publicstaticvoidselectPart()throwsException{
         //第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库

         //默认构造方法,默认是连接本机,端口号,默认是27017
         //相当于Mongomongo=newMongo("localhost",27017)
         Mongomongo=newMongo();

         //第二:连接具体的数据库
         //其中参数是具体数据库的名称,若服务器中不存在,会自动创建
         DBdb=mongo.getDB("myMongo");

         //第三:操作具体的表
        //在mongodb中没有表的概念,而是指集合
         //其中参数是数据库中表,若不存在,会自动创建
         DBCollectioncollection=db.getCollection("user");

   
         //可以直接put
         BasicDBObjectqueryObject=newBasicDBObject();
         queryObject.put("id",1);
         DBCursorquerycursor=collection.find(queryObject);
         System.out.println("条件查询如下:");
         while(querycursor.hasNext()){
              System.out.println(querycursor.next());
         }
    }

    /**
    *更新操作
    *更新一条记录
    *@throwsException
    */
    publicstaticvoidupdate()throwsException{
         //第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库

         //默认构造方法,默认是连接本机,端口号,默认是27017
         //相当于Mongomongo=newMongo("localhost",27017)
         Mongomongo=newMongo();

         //第二:连接具体的数据库
         //其中参数是具体数据库的名称,若服务器中不存在,会自动创建
         DBdb=mongo.getDB("myMongo");

         //第三:操作具体的表
        //在mongodb中没有表的概念,而是指集合
         //其中参数是数据库中表,若不存在,会自动创建
         DBCollectioncollection=db.getCollection("user");

         //更新后的对象
//         第一种更新方式
         BasicDBObjectnewBasicDBObject=newBasicDBObject();
         newBasicDBObject.put("id",2);
         newBasicDBObject.put("name","小红");
         collection.update(newBasicDBObject().append("id",1),newBasicDBObject);

//         第二种更新方式
//         更新某一个字段
//         BasicDBObjectnewBasicDBObject=newBasicDBObject().append("$set",newBasicDBObject().append("name","小红"));
//         collection.update(newBasicDBObject().append("id",1).append("name","小明"),newBasicDBObject);

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

    /**
    *删除文档,其中包括删除全部或删除部分
    *@throwsException
    */
    publicstaticvoiddelete()throwsException{

         //第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库

         //默认构造方法,默认是连接本机,端口号,默认是27017
         //相当于Mongomongo=newMongo("localhost",27017)
         Mongomongo=newMongo();

         //第二:连接具体的数据库
         //其中参数是具体数据库的名称,若服务器中不存在,会自动创建
         DBdb=mongo.getDB("myMongo");

         //第三:操作具体的表
        //在mongodb中没有表的概念,而是指集合
         //其中参数是数据库中表,若不存在,会自动创建
         DBCollectioncollection=db.getCollection("user");
         BasicDBObjectqueryObject1=newBasicDBObject();
         queryObject1.put("id",2);
         queryObject1.put("name","小红");

         //删除某一条记录
        collection.remove(queryObject1);
         //删除全部
         //collection.drop();

         DBCursorcursor1=collection.find();
         System.out.println("删除后的结果如下:");
         while(cursor1.hasNext()){
              System.out.println(cursor1.next());
         }

   
    }

   
}