java操作mongodb实现CURD功能实例

 更新时间:2013年12月20日 09:36:00   作者:  
mongodb支持多种语言,并且提供了多种语言的驱动,本文使用java操作mongodb实现CURD功能,大家参考使用吧

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

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

复制代码 代码如下:

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());
          }

   
     }

   
}

相关文章

  • 基于Scala和Java方法的相互调用

    基于Scala和Java方法的相互调用

    这篇文章主要介绍了Scala和Java方法的相互调用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java数组元素的引用实例讲解

    java数组元素的引用实例讲解

    在本篇文章里小编给大家整理的是一篇关于java数组元素的引用实例讲解内容,有需要的朋友们可以学习参考下。
    2021-03-03
  • java 后台将base64字符串保存为图片的方法

    java 后台将base64字符串保存为图片的方法

    本篇文章主要介绍了java 后台将base64字符串保存为图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • MyBatis-Plus拦截器实现数据权限控制的示例

    MyBatis-Plus拦截器实现数据权限控制的示例

    本文主要介绍了MyBatis-Plus拦截器实现数据权限控制的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Java实现FTP文件与文件夹的上传和下载

    Java实现FTP文件与文件夹的上传和下载

    本文主要分享了Java实现文件上传和下载的具体实例,分为单个文件的上传与下载和整个文件夹的上传与下载。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • Spring框架JavaMailSender发送邮件工具类详解

    Spring框架JavaMailSender发送邮件工具类详解

    这篇文章主要为大家详细介绍了Spring框架JavaMailSender发送邮件工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Java连接sftp服务器实现上传下载功能

    Java连接sftp服务器实现上传下载功能

    这篇文章主要介绍了java连接sftp服务器实现上传下载,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • IDEA中的yml文件与properties互相转换

    IDEA中的yml文件与properties互相转换

    这篇文章主要介绍了IDEA中的yml文件与properties互相转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java File类的详解及简单实例

    Java File类的详解及简单实例

    这篇文章主要介绍了Java File类的详解及简单实例的相关资料,希望通过本文大家能够掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • Java使用GUI实现贪吃蛇游戏详解

    Java使用GUI实现贪吃蛇游戏详解

    小时候经常在诺基亚上玩的一个小游戏-贪吃蛇,你还记得吗?本篇带你重温一下把它实现,做的比较简单,但还是可以玩的.感兴趣的朋友快来看看吧
    2022-05-05

最新评论