• MongoDB学习(二)MongoDB Java增删查改


    • 相关资料

    1、MongoDB for Java的驱动包

      https://github.com/mongodb/mongo-java-driver/downloads

    2、在线文档

         http://www.mongodb.org/display/DOCS/Java+Language+Center

    • 操作

    1、查询某张表(在MongoDB中称之为集合)的所有数据

    Java代码DBTest.java

    package com.archie.mongodb;
    
    import java.net.UnknownHostException;
    
    import com.mongodb.DB;
    import com.mongodb.DBCollection;
    import com.mongodb.DBCursor;
    import com.mongodb.DBObject;
    import com.mongodb.Mongo;
    import com.mongodb.MongoException;
    
    /**
     * 查询指定数据库指定DBCollection集合中的所有数据
     * @author archie2010
     *
     * since 2012-9-29 下午10:40:21
     */
    public class DBTest {
        public static void main(String[] args) throws UnknownHostException,
                MongoException {
            /**
               Mongo实例代表了一个数据库连接池
             * Mongo mg = new Mongo("localhost");
               Mongo mg = new Mongo("localhost", 27017);
             */
            Mongo mg = new Mongo();
    
            // 获取名为“dbtest”的数据库对象
            DB db = mg.getDB("dbtest");
            // 查询该库中所有的集合 (相当于表)
            for (String name : db.getCollectionNames()) {
                System.out.println("Collection Name: " + name);
            }
            DBCollection users = db.getCollection("emp");
            // 查询集合中所有的数据
            DBCursor cur = users.find();
            System.out.println("Record Count:" + cur.count());
            while (cur.hasNext()) {
                DBObject object = cur.next();
                System.out.println(object);
                // 取出对象中列表为字段名为'uname'和'upwd'的数据
                System.out.println("uname:" + object.get("uname") + "\tupwd:"
                        + object.get("upwd"));
            }
        }
    }

    运行结果:

    2、对指定DBCollection集合的CRUD操作

    Java代码

    DBUtil.java

    package com.archie.mongodb;
    
    import java.net.UnknownHostException;
    
    import com.mongodb.DB;
    import com.mongodb.DBCollection;
    import com.mongodb.Mongo;
    
    /**
     * 获得DBCollection集合的工具类
     * @author archie2010
     *
     * since 2012-9-29 下午10:54:42
     */
    public class DBUtil {
    
        public static Mongo mg=null;    
        public static DB db=null;    
        public static DBCollection collection;
        
        /**
         * 获得DBCollection对象
         * @param dbName
         * @param colName
         * @return
         */
        public static DBCollection getDBCollection(String dbName,String colName){
            if(mg==null){
                try {
                    mg=new Mongo();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
            }
            if(db==null){
                db=mg.getDB(dbName);
            }
            return db.getCollection(colName);
        }
    }

    CRUDTest.java

    package com.archie.mongodb;
    
    import com.mongodb.BasicDBObject;
    import com.mongodb.DBCollection;
    import com.mongodb.DBCursor;
    import com.mongodb.DBObject;
    
    /**
     * 对指定DBCollection集合的CRUD操作
     * @author archie2010
     *
     * since 2012-9-29 下午10:51:24
     */
    public class CRUDTest {
        /**
         * 增加
         * @param obj
         */
        public static void add(DBObject obj){
            DBCollection coll=DBUtil.getDBCollection("dbtest", "emp");
            coll.insert(obj);
        }
        /**
         * 删除
         * @param obj
         */
        public static void delete(DBObject obj){
            DBCollection coll=DBUtil.getDBCollection("dbtest", "emp");
            coll.remove(obj);
        }
        /**
         * 查询
         */
        public static void query(){
            DBCollection coll=DBUtil.getDBCollection("dbtest", "emp");
            // 查询集合中所有的数据
            DBCursor cur = coll.find();
            System.out.println("Record Count:" + cur.count());
            while (cur.hasNext()) {
                DBObject object = cur.next();
                System.out.println(object);
                // 取出对象中列表为'uname'和'upwd'的数据
                System.out.println("uname:" + object.get("uname") + "\tupwd:"
                        + object.get("upwd")+"\t_id:"+object.get("_id"));
            }
        }
        /**
         * 修改
         */
        public static void modify(DBObject orig,DBObject update){
            DBCollection coll=DBUtil.getDBCollection("dbtest", "emp");
            coll.update(orig, update, true, false);
        }
        public static void main(String[] args) {
            DBObject empObj=new BasicDBObject();
            empObj.put("uname", "teddy");
            empObj.put("upwd", "123456");
            //添加
            add(empObj);
            query();
            
            
            DBObject updateObj=new BasicDBObject();
            updateObj.put("uname", "teddy");
            updateObj.put("upwd", "3333");
            //更新
            modify(new BasicDBObject("uname","teddy"),updateObj);
            System.out.println("-----------------------修改后-------------------");
            query();
            
            //删除
            delete(new BasicDBObject("uname","teddy"));
            System.out.println("-----------------------删除后-------------------");
            query();
        }
    }

    运行效果:

     示例下载

    by archie
  • 相关阅读:
    CentOS7通过 yum安装路径查询方法
    centos中如何查看tomcat的版本
    CentOS下安装Filezilla软件
    关于jFinal开发中遇到的中文乱码问题解决办法
    jFinal render为什么不跳转到指定的页面
    [Algorithm] 1290. Convert Binary Number in a Linked List to Integer
    一道百度面试题
    ORA-01078, LRM-00123错误处理
    hdu 4115 (2—SAT)
    【PAT Advanced Level】1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/archie2010/p/2708972.html
Copyright © 2020-2023  润新知