mongodb基础系列——java操作mongodb实现CURD

来源:互联网 发布:小米如何禁止软件更新 编辑:程序博客网 时间:2024/04/19 02:17

   mongodb支持多种语言,并且提供了多种语言的驱动。

   java操作mongodb实现CURD:
  
   前提:下载相应的驱动:官网上下载:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
  本人使用mongo-2.10.1.jar版本:
   
   下面有详细代码的,每个方法可以单独执行。其中为了方便运行,每个方法中都重新链接数据库,而没有再提出来,因为在此的目的是为了认识mongodb而已。
<dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>2.10.1</version><type>jar</type><scope>compile</scope></dependency>
 
package com.mongo.dao;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.Mongo;/*** 对基本实体的存储测试* @author lhy**/public class EntityTest {         public static void main(String[] args) throws Exception{          delete();     }         /**     * 保存实体对象     * @throws Exception     */     public static void saveEntity() throws Exception{          //第一:实例化mongo对象,连接mongodb服务器  包含所有的数据库                   //默认构造方法,默认是连接本机,端口号,默认是27017          //相当于Mongo mongo =new Mongo("localhost",27017)          Mongo mongo =new Mongo();                   //第二:连接具体的数据库          //其中参数是具体数据库的名称,若服务器中不存在,会自动创建          DB db=mongo.getDB("myMongo");                   //第三:操作具体的表         //在mongodb中没有表的概念,而是指集合          //其中参数是数据库中表,若不存在,会自动创建          DBCollection collection=db.getCollection("user");                   //添加操作          //在mongodb中没有行的概念,而是指文档          BasicDBObject document=new BasicDBObject();                   document.put("id", 1);          document.put("name", "小明");//          //然后保存到集合中//     //     collection.insert(document);                            //当然我也可以保存这样的json串/*          {               "id":1,               "name","小明",               "address":               {               "city":"beijing",               "code":"065000"               }          }*/          //实现上述json串思路如下:          //第一种:类似xml时,不断添加          BasicDBObject addressDocument=new BasicDBObject();          addressDocument.put("city", "beijing");          addressDocument.put("code", "065000");          document.put("address", addressDocument);          //然后保存数据库中          collection.insert(document);                   //第二种:直接把json存到数据库中/*          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{          //第一:实例化mongo对象,连接mongodb服务器  包含所有的数据库                   //默认构造方法,默认是连接本机,端口号,默认是27017          //相当于Mongo mongo =new Mongo("localhost",27017)          Mongo mongo =new Mongo();                   //第二:连接具体的数据库          //其中参数是具体数据库的名称,若服务器中不存在,会自动创建          DB db=mongo.getDB("myMongo");                   //第三:操作具体的表         //在mongodb中没有表的概念,而是指集合          //其中参数是数据库中表,若不存在,会自动创建          DBCollection collection=db.getCollection("user");                   //查询操作          //查询所有          //其中类似access数据库中游标概念          DBCursor cursor=collection.find();          System.out.println("mongodb中的user表结果如下:");          while(cursor.hasNext()){               System.out.println(cursor.next());          }     }         /**     * 根据条件查询     * @throws Exception     */     public static void selectPart() throws Exception{          //第一:实例化mongo对象,连接mongodb服务器  包含所有的数据库                   //默认构造方法,默认是连接本机,端口号,默认是27017          //相当于Mongo mongo =new Mongo("localhost",27017)          Mongo mongo =new Mongo();                   //第二:连接具体的数据库          //其中参数是具体数据库的名称,若服务器中不存在,会自动创建          DB db=mongo.getDB("myMongo");                   //第三:操作具体的表         //在mongodb中没有表的概念,而是指集合          //其中参数是数据库中表,若不存在,会自动创建          DBCollection collection=db.getCollection("user");                       //可以直接put          BasicDBObject queryObject=new BasicDBObject();          queryObject.put("id", 1);          DBCursor querycursor=collection.find(queryObject);          System.out.println("条件查询如下:");          while(querycursor.hasNext()){               System.out.println(querycursor.next());          }     }         /**     * 更新操作     * 更新一条记录     * @throws Exception     */     public static void update()throws Exception{          //第一:实例化mongo对象,连接mongodb服务器  包含所有的数据库                   //默认构造方法,默认是连接本机,端口号,默认是27017          //相当于Mongo mongo =new Mongo("localhost",27017)          Mongo mongo =new Mongo();                   //第二:连接具体的数据库          //其中参数是具体数据库的名称,若服务器中不存在,会自动创建          DB db=mongo.getDB("myMongo");                   //第三:操作具体的表         //在mongodb中没有表的概念,而是指集合          //其中参数是数据库中表,若不存在,会自动创建          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("更新后结果如下:");          while(querycursor1.hasNext()){               System.out.println(querycursor1.next());          }     }         /**     * 删除文档,其中包括删除全部或删除部分     * @throws Exception     */     public static void delete() throws Exception{                   //第一:实例化mongo对象,连接mongodb服务器  包含所有的数据库                   //默认构造方法,默认是连接本机,端口号,默认是27017          //相当于Mongo mongo =new Mongo("localhost",27017)          Mongo mongo =new Mongo();                   //第二:连接具体的数据库          //其中参数是具体数据库的名称,若服务器中不存在,会自动创建          DB db=mongo.getDB("myMongo");                   //第三:操作具体的表         //在mongodb中没有表的概念,而是指集合          //其中参数是数据库中表,若不存在,会自动创建          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("删除后的结果如下:");          while(cursor1.hasNext()){               System.out.println(cursor1.next());          }                  }        }
 http://limingnihao.iteye.com/blog/1940438
 
http://blog.csdn.net/yuebinghaoyuan/article/details/9006083
0 0
原创粉丝点击