您的位置:首页 > 数据库 > Mongodb

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

2018-03-01 20:00 609 查看
首先,创建好项目,然后导入依赖:
----------------------------------------------------------------------------------------------------------------------------------------

<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);
4000
//打印输出一下我的数据库名
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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java CRUD mongodb