MongoDB(java操作)

来源:互联网 发布:天龙八部游戏 知乎 编辑:程序博客网 时间:2024/06/10 22:07

一、 准备工作

MongoDB与java连接需要相应驱动,可用maven添加相应依赖:

   <dependencies>    <dependency>      <groupId>org.mongo</groupId>      <artifactId>mongo-java-driver</artifactId>      <version>3.2.2</version>    </dependency>  </dependencies>

或者自行下载添加至构建路径即可:mongodb驱动

二、 java操作数据库

import java.util.ArrayList;import java.util.List;import org.bson.Document;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 com.mongodb.client.model.Filters;public class Test {    static MongoDatabase db = null;     static MongoClient mongoClient = null;    public static void main(String[] args) {        try {            db = Connect("mydb");            find("mycol");            insert("mycol");            find("mycol");        } catch (Exception e) {            e.printStackTrace();        }finally {            mongoClient.close();        }    }    /**     * 获得与数据库的连接     * @param dbName     * @return     * @throws Exception     */    public static MongoDatabase Connect(String dbName) throws Exception{        try {            //启用Mongo客户端访问MongoDB服务            mongoClient = new MongoClient("localhost", 27017);            //连接到相应数据库            MongoDatabase db = mongoClient.getDatabase(dbName);            System.out.println("connect successfully");            return db;        } catch (Exception e) {            throw new Exception();        }    }    /**     * 向数据库当中插入文档     * @param collectionName     */    public static void insert(String collectionName){        MongoCollection<Document> collection = db.getCollection(collectionName);        /*         * 创建org.bson.Document 参数为key-value键值对         * 创建文档集合List         * 将文档集合插入数据库当中         * insertMany(List)可以插入多个文档         * insertOne(Document)可以插入一个文档         */        Document document = new Document("title", "Mondbnew").        append("description", "database").        append("likes", 100).        append("by", "super");        List<Document> list = new ArrayList<>();        list.add(document);        collection.insertMany(list);        System.out.println("insert successfuly");    }    /**     * 检索数据库当中文档     * @param collectionName     */    public static void find(String collectionName){        MongoCollection<Document> collection = db.getCollection(collectionName);        /*         * 获取迭代器         * 通过迭代器获取游标         * 通过游标遍历文档         */        FindIterable<Document> findIterable = collection.find();        MongoCursor<Document> cursor = findIterable.iterator();        while(cursor.hasNext()){            System.out.println(cursor.next());        }    }    /**     * 更新文档     * @param collectionName     */    public static void update(String collectionName){        MongoCollection<Document> collection = db.getCollection(collectionName);        //更新文档 将原likes:100修改为likes:200        collection.updateMany(Filters.eq("likes", 100), new Document("$set", new Document("likes", 200)));        System.out.println("update successfly");    }     /**     * 删除文档     * @param collectionName     */    public static void remove(String collectionName){        MongoCollection<Document> collection = db.getCollection(collectionName);        //删除符合条件的第一个文档        collection.deleteOne(Filters.eq("likes", 200));        //删除符合条件的第二个文档        collection.deleteMany(Filters.eq("likes", 200));    }}
原创粉丝点击