加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java操作mongoDB实现CURD

发布时间:2020-12-14 23:25:49 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package com.zk.db;import java.net.UnknownHostException;import java.util.ArrayList;import java.util.List;import org.bson.types.ObjectId;impor

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

package com.zk.db;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import org.bson.types.ObjectId;
import org.junit.Test;
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.MongoException;
/**
 * 测试mongodb curd
 * @author zk
 * @time   2015年4月24日23:19:15
 */
public class DataTest {
    // 1.建立一个Mongo的数据库连接对象
    static Mongo connection = null;
    // 2.创建相关数据库的连接
    static DB db = null;

    static {
        try {
            connection = new Mongo("127.0.0.1:27017"); //默认链接地址
        } catch (Exception e) {
            e.printStackTrace();
        }
        db = connection.getDB("one");//获取数据库名称
    }

    /**
     * 测试创建数据文档集合 类似 数据表 person
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test1() throws UnknownHostException,MongoException {
        // 实例化
        MongoDb mongoDb = new MongoDb("one");
        mongoDb.createCollection("person");

    }

    /**
     * 测试添加一条记录
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test2() throws UnknownHostException,MongoException {
        // 实例化
        DBObject p1 = new BasicDBObject();
        p1.put("name","zk00");
        insert(p1,"person");

    }

    /**
     * 测试添加一条记录
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test3() throws UnknownHostException,MongoException {
        List<DBObject> dbObjects = new ArrayList<DBObject>();
        DBObject zs = new BasicDBObject("name","zhaosi");
        DBObject zq = new BasicDBObject("name","zhuqi");
        dbObjects.add(zs);
        dbObjects.add(zq);
        insertBatch(dbObjects,"person");

    }

    /**
     * 测试 根据id 删除一条记录
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test4() throws UnknownHostException,MongoException {

        deleteById("553a5accb9d133bcf4056a40","person");

    }

    /**
     * 测试 根据条件 删除
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test5() throws UnknownHostException,MongoException {

        DBObject obj = new BasicDBObject();
        obj.put("name","zk00");
        int count = deleteByDbs(obj,"person");
        System.out.println("删除数据的条数是: " + count);
    }

    /**
     * 测试 更新操作
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test6() throws UnknownHostException,MongoException {
        DBObject obj = new BasicDBObject();
        obj.put("name","zhaosi");
        DBObject update = new BasicDBObject();
        update.put("$set",new BasicDBObject("name","nn1"));
        update(obj,update,false,true,"person");
    }

    /**
     * 测试 查询出person集合中的name
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test7() throws UnknownHostException,MongoException {
        DBObject keys = new BasicDBObject();
        keys.put("_id",false);
        keys.put("name",true);
        DBCursor cursor = find(null,keys,"person");
        while (cursor.hasNext()) {
            DBObject object = cursor.next();
            System.out.println(object.get("name"));
        }
    }

    /**
     * 测试 分页
     * 
     * @throws UnknownHostException
     * @throws MongoException
     */
    @Test
    public void test8() throws UnknownHostException,MongoException {
        DBCursor cursor = find(null,null,6,"person");
        while (cursor.hasNext()) {
            DBObject object = cursor.next();
            System.out.print("name=" + object.get("name") + "  ");
            System.out.println("_id=" + object.get("_id"));

        }
    }

    /**
     * 创建一个数据库集合
     * 
     * @param collName
     *            集合名称
     * @param db
     *            数据库实例
     */
    public void createCollection(String collName) {
        DBObject dbs = new BasicDBObject();
        db.createCollection("person",dbs);
    }

    /**
     * 为相应的集合添加数据
     * 
     * @param dbs
     * @param collName
     */
    public void insert(DBObject dbs,String collName) {
        // 1.得到集合
        DBCollection coll = db.getCollection(collName);
        // 2.插入操作
        coll.insert(dbs);
    }

    /**
     * 为集合批量插入数据
     * 
     * @param dbses
     * @param collName
     */
    public void insertBatch(List<DBObject> dbses,String collName) {
        DBCollection coll = db.getCollection(collName);
        coll.insert(dbses);
    }

    /**
     * 根据id删除数据
     * 
     * @param id
     * @param collName
     * @return 返回影响的数据条数
     */
    public int deleteById(String id,String collName) {
        DBCollection coll = db.getCollection(collName);
        DBObject dbs = new BasicDBObject("_id",new ObjectId(id));
        int count = coll.remove(dbs).getN();
        return count;
    }

    /**
     * 根据条件删除数据
     * 
     * @param id
     * @param collName
     * @return 返回影响的数据条数
     */
    public int deleteByDbs(DBObject dbs,String collName) {
        DBCollection coll = db.getCollection(collName);
        int count = coll.remove(dbs).getN();
        return count;
    }

    /**
     * 更新数据
     * 
     * @param find
     *            查询器
     * @param update
     *            更新器
     * @param upsert
     *            更新或插入
     * @param multi
     *            是否批量更新
     * @param collName
     *            集合名称
     * @return 返回影响的数据条数
     */
    public int update(DBObject find,DBObject update,boolean upsert,boolean multi,String collName) {
        DBCollection coll = db.getCollection(collName);
        int count = coll.update(find,upsert,multi).getN();
        return count;
    }

    /**
     * 查询(分页)
     * @param ref
     * @param keys
     * @param start
     * @param limit
     * @return
     */
    public DBCursor find(DBObject ref,DBObject keys,int start,int limit,String collName) {
        DBCursor cur = find(ref,collName);
        return cur.limit(limit).skip(start);
    }

    /**
     * 查询 (不分页)
     * @param ref
     * @param keys
     * @param start
     * @param limit
     * @param collName
     * @return
     */
    public DBCursor find(DBObject ref,String collName) {
        DBCollection coll = db.getCollection(collName);
        DBCursor cur = coll.find(ref,keys);
        return cur;
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读