zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java操作mongoDB实现CURD详解大数据

JAVAMongoDB数据 实现 详解 操作 CURD
2023-06-13 09:20:25 时间

java操作mongoDB
mongoDB作为一个牛气哄哄的nosql内存数据库,的确有很多优点,对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。接触 到mongoDB 参考了下api实现了增删改查、mongoDB 是面向对象设计,不用写sql语句 直接操作api 方法 就可以实现,这会儿数据库语句写不好的娃娃们有福了。直接贴码:

DataTest.java

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, 0, 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, update, 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, keys, collName); 

 return cur.limit(limit).skip(start); 

 /** 

 * 查询 (不分页) 

 * @param ref 

 * @param keys 

 * @param start 

 * @param limit 

 * @param collName 

 * @return 

 public DBCursor find(DBObject ref, DBObject keys, String collName) { 

 DBCollection coll = db.getCollection(collName); 

 DBCursor cur = coll.find(ref, keys); 

 return cur; 

}

注意:connection.close();最后别忘记调用,另外 做过java的同学都知道连接池 以及释放回收链接问题。mongodb自动内部实现了连接池。不需要再考虑该问题,也可以自行实现设置。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/8957.html

分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集