欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java操作mongodb实现CURD功能实例

程序员文章站 2024-02-19 22:37:46
先下载相应的驱动:官网上下载:本文使用mongo-2.10.1.jar版本:下面有详细代码的,每个方法可以单独执行。其中为了方便运行,每个方法中都重新链接数据库,而没有再提...

先下载相应的驱动:官网上下载:
本文使用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());
          }

   
     }

   
}