MongoDB的一些常用操作的公共类:
package model.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.bson.types.ObjectId;
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 Manager
* @author Ken Chau
*
*/
public class MongoDBManager {
private static Logger log = Logger.getLogger(MongoDBManager.class);
private static Mongo mg = null;
private static DB db = null;
private final static MongoDBManager instance = new MongoDBManager();
/**
* 实例化
* @return
* @throws Exception
*/
public static MongoDBManager getInstance() throws Exception {
return instance;
}
static {
try {
mg = new Mongo(HOST, PORT);
db=mg.getDB(DB);
} catch (Exception e) {
log.error("Can't connect MongoDB!");
e.printStackTrace();
}
}
/**
* 获取集合(表)
* @param collection
*/
public static DBCollection getCollection(String collection) {
return db.getCollection(collection);
}
/**
* ----------------------------------分割线--------------------------------------
*/
/**
* 插入
* @param collection
* @param map
*/
public void insert(String collection , Map<String, Object> map) {
try {
DBObject dbObject = map2Obj(map);
getCollection(collection).insert(dbObject);
} catch (MongoException e) {
log.error("MongoException:" + e.getMessage());
}
}
/**
* 批量插入
* @param collection
* @param list
*/
public void insertBatch(String collection ,List<Map<String, Object>> list) {
if (list == null || list.isEmpty()) {
return;
}
try {
List<DBObject> listDB = new ArrayList<DBObject>();
for (int i = 0; i < list.size(); i++) {
DBObject dbObject = map2Obj(list.get(i));
listDB.add(dbObject);
}
getCollection(collection).insert(listDB);
} catch (MongoException e) {
log.error("MongoException:" + e.getMessage());
}
}
/**
* 删除
* @param collection
* @param map
*/
public void delete(String collection ,Map<String, Object> map) {
DBObject obj = map2Obj(map);
getCollection(collection).remove(obj);
}
/**
* 删除全部
* @param collection
* @param map
*/
public void deleteAll(String collection) {
List<DBObject> rs = findAll(collection);
if (rs != null && !rs.isEmpty()) {
for (int i = 0; i < rs.size(); i++) {
getCollection(collection).remove(rs.get(i));
}
}
}
/**
* 批量删除
* @param collection
* @param list
*/
public void deleteBatch(String collection,List<Map<String, Object>> list) {
if (list == null || list.isEmpty()) {
return;
}
for (int i = 0; i < list.size(); i++) {
getCollection(collection).remove(map2Obj(list.get(i)));
}
}
/**
* 计算满足条件条数
* @param collection
* @param map
*/
public long getCount(String collection,Map<String, Object> map) {
return getCollection(collection).getCount(map2Obj(map));
}
/**
* 计算集合总条数
* @param collection
* @param map
*/
public long getCount(String collection) {
return getCollection(collection).find().count();
}
/**
* 更新
* @param collection
* @param setFields
* @param whereFields
*/
public void update(String collection,Map<String, Object> setFields,
Map<String, Object> whereFields) {
DBObject obj1 = map2Obj(setFields);
DBObject obj2 = map2Obj(whereFields);
getCollection(collection).updateMulti(obj1, obj2);
}
/**
* 查找对象(根据主键_id)
* @param collection
* @param _id
*/
public DBObject findById(String collection,String _id) {
DBObject obj = new BasicDBObject();
obj.put("_id", ObjectId.massageToObjectId(_id));
return getCollection(collection).findOne(obj);
}
/**
* 查找集合所有对象
* @param collection
*/
public List<DBObject> findAll(String collection) {
return getCollection(collection).find().toArray();
}
/**
* 查找(返回一个对象)
* @param map
* @param collection
*/
public DBObject findOne(String collection,Map<String, Object> map) {
DBCollection coll = getCollection(collection);
return coll.findOne(map2Obj(map));
}
/**
* 查找(返回一个List<DBObject>)
* @param <DBObject>
* @param map
* @param collection
* @throws Exception
*/
public List<DBObject> find(String collection,Map<String, Object> map) throws Exception {
DBCollection coll = getCollection(collection);
DBCursor c = coll.find(map2Obj(map));
if (c != null)
return c.toArray();
else
return null;
}
转载:http://www.open-open.com/lib/view/open1325153696014.html
分享到:
相关推荐
MongoDB应用 Java应用 纯java mongodb操作 mongodb 通用dao
这篇文章就是展示如何使用Java基于MongoDB和Spring Data创建一个CRUD应用。 Spring Data for MongoDB提供了一个类似于基于Sping编程模型的NoSQL数据存储。Spring Data for MongoDB提供了很多特性,它使很多MongoDB的...
我在这里展示了一种使用 mongoDB 的简单方法。 要运行此示例,您需要在您的计算机上安装 mongoDB。 然后,下载你最喜欢的目录的最后一个 java 驱动程序(JAR 文件)。 该文件有大量注释,因此您可以轻松地执行每...
Java多线程读取大文本文件并批量插入MongoDB的代码,文本文件,csv文件,可以结合POI改造使其支持excel。 适合做大量文本数据或日志文件...包含Main方法调用案例,基于接口的通用设计,业务模块可自定义实现具体逻辑。
Java,Foo feito um Crud(评论,顾问,副教授和删除者)的数据仓库,MongoDB数据库。 可以从以下站点下载站点的网站: ://mvnrepository.com/artifact/org.mongodb/mongo-java-driver,从站点下载版本。 可以下载...
mongodb-hello-world:介绍 MongoDB Java API 基本用法的项目。 mongodb-发布-订阅: mongodb-路由: mongodb-rpc: mongodb 主题: mongodb-工作队列: 基准测试 mongodb 基准测试: 执照 RabbitMQ 示例在 GNU...
DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。 由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,包括:Windows...
nomopojo是一组通用Java CRUD servlet,用于提供不使用POJO的REST服务。 警告: 退后! 这是非常早期的pre-pre-alpha软件! (至少直到我删除此警告!) 名字 nomopojo代表“ No More POJO”。 在Java / J2EE世界...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
一个基于棋牌、MMORPG游戏的分布式java游戏服务器,理论上可以无限水平扩展网关服,大厅服、游戏服达到人数承载。实现了集群注册中心,网关、登陆、后台服务器监控等通用服务器;封装了redis集群、mongodb等数据库...
Java,python,scala及R语言的支持也是其通用性的表现之一。 快速: 这个可能是Spark成功的最初原因之一,主要归功于其基于内存的运算方式。当需要处理的数据需要反复迭代时,Spark可以直接在内存中暂存数据,而...
泽西MongoDB JerseyMongoDB:仅用于教育目的的 Jersey ReST / MongoDB 服务概念证明。 版权所有 (C) 2014 迈克尔·切斯特该程序是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证(许可证的第 3 版或...
曾经读过Erudika/para的源码,此源码托管在github,大致是2014年前后开源的云计算通用后端框架,基于spring boot体系,原生集成持久化(默认H2 DB,通过配置方式实现MongoDB、mysql等常用关系数据库的支持)、缓存...
elasticsearch-7.16,mongodb,nacos-2.0.3,mysql5.7,spider-flow-master,rabbitmq-3.9.13,BtSoft,zipkin-2.12.9... ---由于文件大小限制,linux暂无法击中上传--- Linux: elasticsearch-7.16,jdk-1.8,redis...
使用MyBatisPlus的方式,优雅的操作MongoDB。无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。强大的 CRUD 操作:...
同步该产品是为MongoDB和RDBMS数据库之间的双向数据迁移而构建的。特征: 几乎可以与任何SQL数据库(使用JDBC)一起使用。 经过Oracle和MySQL测试。 简单直观的用户界面,用于在数据库之间创建映射并跟踪实时迁移。 ...
imethan-admin基于JAVA开发的企业级项目通用权限框架1,使用Spring作为项目基础框架,使用Spring MVC实现视图控制,整合Spring安全权限框架根据IOC容器,实现bean类的依赖注入;实现用户登录,授权,记住我,会话...
使用MyBatisPlus的方式,优雅的操作MongoDB,可和现有Mongo框架结合使用,无侵入性 简化开发, 只需简单配置,即可快速进行CRUD操作,链式调用更加便捷。只做增强不做改变,引入它不会对现有工程产生影响,如丝般...
项目名称:基于爬虫的题库自动生成系统Java毕设项目.rar 本课题的主要目的是设计面向定向网站的网络爬虫程序,同时需要满足不同的性能要求,详细涉及到定向网络爬虫的各个细节与应用环节。 搜索引擎作为一个辅助...
YayCrawler是一个基于WebMagic开发的分布式通用爬虫框架,开发语言是Java。我们知道目前爬虫框架很多,有简单的,也有复杂的,有轻 量型的,也有重量型的。您也许会问:你这个爬虫框架的优势在哪里呢?额,这个是一...