Java操作MongoDB实现增删改查

来源:互联网 发布:pagerank算法新应用 编辑:程序博客网 时间:2024/05/01 23:44
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.util.JSON;

public class TestMongoDB {
    public static void main(String[] args) {

         new TestMongoDB().save();
         new TestMongoDB().queryAll();
         new TestMongoDB().queryByName();
         new TestMongoDB().update();
         new TestMongoDB().del();
    }

    // 实例化mongo对象,连接mongodb服务器 包含所有的数据库
    protected static Mongo mongo = new Mongo();
    
    // 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
    protected static DB db = mongo.getDB("myMongo");

    // 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
    protected static DBCollection dbCollection = db.getCollection("user");
    
    public void save() {
        try {
            // 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
            //DB db = mongo.getDB("myMongo");

            // 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
            //DBCollection dbCollection = db.getCollection("user");

            // 添加操作
             BasicDBObject document = new BasicDBObject();
            
             // 数据
             document.put("id", 1);
             document.put("name", "xiaoli");
             document.put("age", 20);
             document.put("email", "abcd1990@126.com");
             document.put("sex", "男");
             document.put("address", "广东省深圳市南山区");
            
             // 保存到集合中
             dbCollection.insert(document);

            // 第二种:直接把json存到数据库中
            String jsonTest = "{'id':2,'name':'小明'," + "'address':{'city':'beijing','code':'065000'}" + "}";
            DBObject dbobjct = (DBObject) JSON.parse(jsonTest);
            dbCollection.insert(dbobjct);

            // 查询所有
            DBCursor cursor = dbCollection.find();
            System.out.println("--------添加数据后:");
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void queryAll() {
        try {
            // 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
            //DB db = mongo.getDB("myMongo");

            // 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
            //DBCollection dbCollection = db.getCollection("user");

            // 查询所有
            DBCursor cursor = dbCollection.find();
            System.out.println("---------查询所有:");
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void queryByName() {
        try {
            // 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
            //DB db = mongo.getDB("myMongo");

            // 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
            //DBCollection dbCollection = db.getCollection("user");

            BasicDBObject queryObject = new BasicDBObject();
            queryObject.put("id", 1);

            // 条件查询
            DBCursor cursor = dbCollection.find(queryObject);
            System.out.println("------------根据条件查询:");
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void update() {
        try {
            // 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
            //DB db = mongo.getDB("myMongo");

            // 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
            //DBCollection dbCollection = db.getCollection("user");

            BasicDBObject basObject = new BasicDBObject();
            basObject.put("id", 1);
            basObject.put("name", "xiaoli");
            basObject.put("age", 20);
            basObject.put("email", "abcd1990@126.com");
            basObject.put("sex", "男");
            basObject.put("address", "广东省深圳市南山区");

            // 第一种更新
            dbCollection.update(new BasicDBObject().append("age", 25), basObject);

            // 第二种更新
            BasicDBObject newBasicDBObject = new BasicDBObject().append("$set", new BasicDBObject().append("age", 5));
            dbCollection.update(new BasicDBObject().append("id", 1), newBasicDBObject);

            // 查询所有
            DBCursor cursor = dbCollection.find();
            System.out.println("更新后结果:");
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void del() {
        try {
            // 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
            //DB db = mongo.getDB("myMongo");

            // 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
            //DBCollection dbCollection = db.getCollection("user");

            BasicDBObject basObject = new BasicDBObject();
            basObject.put("id", 2);
            basObject.put("name", "小明");

            // remove一条记录
            dbCollection.remove(basObject);

            // remove all
            dbCollection.drop();

            // find all
            DBCursor cursor = dbCollection.find();
            System.out.println("----------删除后:");
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


0 0
原创粉丝点击