MongoDB和java的结合

这边文章实现了mongodb和java结合进行增删改查的基本操作,可以作为mongodb的练手代码。

项目目录:

1.jar包的导入

2.创建类和静态块

3.添加文档

4.查询文档

5,.修改文档

6.删除文档

1.jar包的导入

  • mongodb与java的连接jar包:mongodb-driver-3.4.2.jar和mongodb-driver-core-3.4.2.jar
  • junit的测试jar包:junit-4.1.2.jar和hamcrest-core-1.3.jar
  • bson格式的jar包:bson-3.4.0.jar

可以直接从链接下载:链接:http://pan.baidu.com/s/1jIbwQdo 密码:3062

2.创建类和静态块

静态块的作用:使类在加载的时候就创建了test数据库,创建了mistakes的集合

public class TestMistake {
    protected static MongoCollection<Document> dbCollection = null;

    static {
        try {
            MongoClient mongoClient = new MongoClient("localhost", 27017);
            // 连接到数据库
            MongoDatabase db = mongoClient.getDatabase("test");
            System.out.println("Connect to database successfully");
            dbCollection = db.getCollection("mistakes");
            System.out.println("集合创建成功");
        } catch (Exception exp) {
            exp.printStackTrace();
        }
    }    
}

3.添加文档

 /**
     * 测试文档的添加
     */
    @Test
    public void createDocument() {
        Document doc = new Document();
        doc.append("name", "qinqin");
        doc.append("gender", "female");
        doc.append("age", "18");
        dbCollection.insertOne(doc);
        System.out.println("添加成功");
    }

4.查询文档

 /**
     * 测试文档的查询
     */
    @Test
    public void getDocumentByName() {
        Bson filters = Filters.eq("name", "qinqin");
        FindIterable<Document> findIterable = dbCollection.find(filters);
        MongoCursor<Document> mongoCursor = findIterable.iterator();
        while (mongoCursor.hasNext()) {
            System.out.println(mongoCursor.next());
        }
        System.out.println("查询成功");
    }

5,.修改文档

 /**
     * 测试文档的修改
     */
    @Test
    public void updateDocuemnt() {
        dbCollection.updateMany(Filters.eq("name", "qinqin"),
                new Document("$set", new Document("age", "19")));
        System.out.println("更新成功");
    }

6.删除文档

/**
     * 测试文档的删除
     */
    @Test
    public void deleteDocument() {
        FindIterable<Document> findIterable = dbCollection.find();
        MongoCursor<Document> mongoCursor = findIterable.iterator();
        System.out.println("删除前:");
        while (mongoCursor.hasNext()) {
            System.out.println(mongoCursor.next());
        }
        // dbCollection.deleteOne(Filters.eq("name", "qinqin"));// 删除符合条件的第一个文档
        dbCollection.deleteMany(Filters.eq("name", "qinqin"));// 删除所有符合条件的文档
        System.out.println("删除后:");
        // 查看删除后的结果
        while (mongoCursor.hasNext()) {
            System.out.println(mongoCursor.next());
        }
    }