使用Java代码操作MongoDB(CRUD)方法二

首先,创建好项目,然后导入依赖:

----------------------------------------------------------------------------------------------------------------------------------------

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
 
 
<dependency>
  <groupId>org.mongodb</groupId>
  <artifactId>mongo-java-driver</artifactId>
  <version>3.4.2</version>
</dependency>
----------------------------------------------------------------------------------------------------------------------------------------

2.之后,再用cmd命令窗口打开MongoDB的服务,命令窗口就不用关闭了。

----------------------------------------------------------------------------------------------------------------------------------------

3.之后,新写一个类(MongoDb):

这里就是我的一些方法:

package com.MongoDb;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import org.bson.BSON;
import org.bson.Document;
import org.bson.conversions.Bson;
import javax.print.Doc;
import java.util.ArrayList;
import java.util.List;

public class MongoDb {

    private static MongoCollection<Document> collection;

    /**
     * 链接数据库
     * @param databaseName 数据库名称
     * @param collectionName 集合名称
     * @param hostName 主机名
     * @param port 端口号
     */

    public static void connects(String databaseName,String collectionName,String hostName,int port){
         
        //MongoDB连接
        MongoClient client=new MongoClient(hostName,port);
        //得到数据库
        MongoDatabase db=client.getDatabase(databaseName);
        //得到连接
        collection=db.getCollection(collectionName);
        //打印输出一下我的数据库名
        System.out.println(collectionName);
    }

    /**
     * 插入一个文档:
     */
    public static void insert(Document document){
        collection.insertOne(document);
    }

    /**
     *
     * 查询所有的文档
     * 返回所有的文档集合
     */
    public static List<Document> findAll(){
        List<Document> results=new ArrayList<Document>();
        FindIterable<Document> iterable=collection.find();

        MongoCursor<Document> cursor=iterable.iterator();
        while(cursor.hasNext()){
            results.add(cursor.next());
        }
        return results;
    }

    /**
     * 根据条件查询
     */
     public static List<Document> findBy(Bson filter){
        //Bson中就是条件参数
         List<Document> results=new ArrayList<Document>();
         FindIterable<Document> iterable=collection.find(filter);
         MongoCursor<Document> cursor=iterable.iterator();
         while(cursor.hasNext()){
             results.add(cursor.next());
         }
         return results;
     }


    /**
     * 根据条件删除一个文档:
     */
    public static void delone(Bson filter){
        collection.deleteOne(filter);
    }

    /**
     * 根据条件删除多个文档:
     */
    public static void delmany(Bson filter){
        collection.deleteMany(filter);
    }

    /**
     * 修改
     */
     public static void update(Bson filter,Document update){
         //第一个Bson是条件,然后后面的Document就是修改后的对象属性
         collection.updateOne(filter,update);
     }


}
----------------------------------------------------------------------------------------------------------------------------------------
4.然后,你可以写一个测试类去调用:
 
 
//连接:
@Before
public void before(){
    //调用MongoDB中的connect方法:
    MongoDb.connects("user","tb_user","127.0.0.1",27017);
}

@Test
public void trstadd(){
    //创建文档
    Document document=new Document();
    //追加文档内容:
    document.append("name","even").append("age",19);
    //通过MongoDb类中的insert添加:
    MongoDb.insert(document);
}

@Test
public void getall(){
    List<Document> results=MongoDb.findAll();
    for (Document result : results) {
        System.out.println(result.toJson());
    }
}

//根据姓名查询:
@Test
public void testFindBy(){
    Document filter=new Document();
    filter.append("name","even");

    List<Document> results=MongoDb.findBy(filter);
    for (Document document : results) {
        System.out.println(document.toJson());
    }
}

//修改:
@Test
public void update(){
    Document filter=new Document();
    filter.append("name","小天使").append("age",17);
    //注意 update文档里面要包含“$set”字段:
    Document update=new Document();
    update.append("$set",new Document("_id",5   ));
    MongoDb.update(filter,update);

}



猜你喜欢

转载自blog.csdn.net/desert568/article/details/79406613
今日推荐