不爱说话爱技术,以下是我整理的关于对mongodb进行增删改查操作的一个工具类,恐有不足,向各位大拿们讨教。最后有一个源码及实现类和接口。
- package com.iceter.DataBase;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import org.bson.Document;
- import org.bson.conversions.Bson;
- import org.junit.Test;
- import com.mongodb.BasicDBObject;
- import com.mongodb.DB;
- import com.mongodb.MongoClient;
- import com.mongodb.MongoCredential;
- import com.mongodb.ServerAddress;
- import com.mongodb.client.FindIterable;
- import com.mongodb.client.MongoCollection;
- import com.mongodb.client.MongoCursor;
- import com.mongodb.client.MongoDatabase;
- import com.mongodb.client.model.Filters;
- import com.mongodb.client.model.InsertOneOptions;
- import com.mongodb.client.result.DeleteResult;
- import com.mongodb.client.result.UpdateResult;
- /**
- * 对mongodb的操作类
- * @author ice
- *
- */
- public class IMongoJDBCUtilCJB{
- private static IMongoJDBCUtilCJB mongoUtil;
- private String address = "localhost";
- private int port = 27017;
- private String dataBase = "mycol";
- private String collection = "mycol";
- MongoClient mongoClient ;
- MongoDatabase mongoDatabase ;
- MongoCollection<Document> mongoCol ;
- private void getMongoCon() {
- mongoClient = new MongoClient( address , port );
- mongoDatabase = mongoClient.getDatabase(dataBase);
- mongoCol = mongoDatabase.getCollection(collection);
- }
- //单利
- public static IMongoJDBCUtilCJB getInstance(String address,int port,String dataBase,String collection){
- if (mongoUtil!=null) {
- return mongoUtil;
- }else {
- return new IMongoJDBCUtilCJB(address,port,dataBase,collection);
- }
- }
- /**
- * 根据地址,数据库及连接名称连接到数据库
- * @param address 数据库连接地址
- * @param port 数据库端口
- * @param dataBase 实例名
- * @param collection 连接名
- */
- public IMongoJDBCUtilCJB(String address,int port,String dataBase,String collection) {
- this.address = address;
- this.dataBase = dataBase;
- this.collection = collection;
- //实例化
- getMongoCon();
- }
- /**
- * 连接到数据库
- * @return
- */
- @Test
- public boolean mongodbConTest() {
- try{
- // 连接到 mongodb 服务
- MongoClient mongoClient = new MongoClient( address , port );
- // 连接到数据库
- MongoDatabase mongoDatabase = mongoClient.getDatabase(dataBase);
- System.out.println("Connect to database successfully");
- mongoDatabase.createCollection(collection);
- return true;
- }catch(Exception e){
- System.err.println(e.getClass().getName() + "->" + e.getMessage());
- return false;
- }
- }
- /**
- * 创建集合
- */
- @Test
- public void mongodbCreate() {
- getMongoCon();
- mongoDatabase.createCollection(collection);
- }
- /**
- * 向mongodb添加数据
- */
- @Test
- public void mongdbAddDoc(Document doc) {
- getMongoCon();
- mongoCol.insertOne(doc);
- }
- /**
- * 关闭mongodb连接
- */
- @Test
- public void mongoClose() {
- getMongoCon();
- mongoClient.close();
- }
- /**
- * 根据固定条件向mongodb添加数据
- */
- @Test
- public void mongdbAddDocByOptions(Document doc,InsertOneOptions options) {
- getMongoCon();
- mongoCol.insertOne(doc, options);
- }
- /**
- * 向mongodb添加多条数据
- */
- @Test
- public void mongdbAddDocs(List<Document> list) {
- getMongoCon();
- mongoCol.insertMany(list);
- }
- /**
- * 向mongodb删除一条数据
- * @param filter
- * 查询条件 //注意Bson的几个实现类,BasicDBObject, BsonDocument,
- * BsonDocumentWrapper, CommandResult, Document, RawBsonDocument
- */
- @Test
- public DeleteResult mougdbDel(BasicDBObject basic) {
- getMongoCon();
- Bson filter = basic;
- DeleteResult dResult = mongoCol.deleteOne(filter);
- return dResult;
- }
- /**
- * 向mongodb删除多条数据
- * @param filter
- * 查询条件 //注意Bson的几个实现类,BasicDBObject, BsonDocument,
- * BsonDocumentWrapper, CommandResult, Document, RawBsonDocument
- */
- @Test
- public DeleteResult mougdbDels(BasicDBObject basic) {
- getMongoCon();
- Bson filter = basic;
- DeleteResult dResult = mongoCol.deleteMany(filter);
- return dResult;
- }
- /**
- * 向mongodb修改单条数据
- * @param filter
- * @param update
- * @return
- */
- @Test
- public UpdateResult mongdbUpdateOne(Bson filter, Bson update) {
- getMongoCon();
- UpdateResult result = mongoCol.updateOne(filter, update);
- return result;
- }
- /**
- * 向mongodb修改单条数据
- * @param filter
- * @param update
- * @return
- */
- @Test
- public UpdateResult mongdbUpdateMany(Bson filter, Bson update) {
- getMongoCon();
- UpdateResult result = mongoCol.updateMany(filter, update);
- return result;
- }
- /**
- * mongodb根据固定条件查询数据查询数据
- */
- @Test
- public List<Document> mongdbQuery(Bson bson) {
- getMongoCon();
- List<Document> array = new ArrayList<>();
- FindIterable<Document> findy = mongoCol.find(bson);
- MongoCursor<Document> cursor = findy.iterator();
- while (cursor.hasNext()) {
- array.add(cursor.next());
- }
- return array;
- }
- /**
- * mongodb根据BasicDBObject中的固定条件查询数据查询数据
- */
- @Test
- public List<Document> mongdbQuery(BasicDBObject obj) {
- getMongoCon();
- List<Document> array = new ArrayList<>();
- Bson bson = obj;
- FindIterable<Document> findy = mongoCol.find(bson);
- MongoCursor<Document> cursor = findy.iterator();
- while (cursor.hasNext()) {
- array.add(cursor.next());
- }
- return array;
- }
- /**
- * 根据key和value值查询数据
- * @param key 查询字段
- * @param value 查询内容
- * @return
- */
- @Test
- public List<Document> mongdbQuery(String key,Object value) {
- getMongoCon();
- List<Document> array = new ArrayList<>();
- Bson bson = new BasicDBObject().append(key, value);
- FindIterable<Document> findy = mongoCol.find(bson);
- MongoCursor<Document> cursor = findy.iterator();
- while (cursor.hasNext()) {
- array.add(cursor.next());
- }
- return array;
- }
- /**
- * 向mongodb查询所有数据
- */
- @Test
- public List<Document> mongdbQuerys() {
- getMongoCon();
- List<Document> array = new ArrayList<>();
- FindIterable<Document> findAll = mongoCol.find();
- MongoCursor<Document> corsor = findAll.iterator();
- while (corsor.hasNext()) {
- array.add(corsor.next());
- }
- return array;
- }
- /**
- * 通过用户名密码登录(待测试)
- */
- @Test
- public void getConUsePass(){
- try {
- //连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
- //ServerAddress()两个参数分别为 服务器地址 和 端口
- ServerAddress serverAddress = new ServerAddress(address,27017);
- List<ServerAddress> addrs = new ArrayList<ServerAddress>();
- addrs.add(serverAddress);
- //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
- MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
- List<MongoCredential> credentials = new ArrayList<MongoCredential>();
- credentials.add(credential);
- //通过连接认证获取MongoDB连接
- MongoClient mongoClient = new MongoClient(addrs,credentials);
- //连接到数据库
- MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
- System.out.println("Connect to database successfully");
- } catch (Exception e) {
- System.err.println(e.getClass().getName() + "->" + e.getMessage());
- }
- }
- /**
- * 测试类,仅供测试使用
- */
- @Test
- public void mongodbTest() {
- try{
- }catch(Exception e){
- System.err.println(e.getClass().getName() + "->" + e.getMessage());
- }
- }
- /**
- *
- * @param args
- */
- public static void main( String args[] ){
- IMongoJDBCUtilCJB util = IMongoJDBCUtilCJB.getInstance("localhost", 27010, "database", "mycol");
- // IMongoJDBCUtil util = new IMongoJDBCUtil(address, 27010, "database", dataBase);
- // util.mongoClose();
- //
- // DeleteResult d = util.mougdbDel(new BasicDBObject().append("age", 200));
- // System.out.println(d.getDeletedCount());
- util.mongodbTest();
- }
- }
相关推荐
将一系列图片文件存储到MongoDB中 java操作mongodb存储文件
【Java 操作 MongoDB 知识点详解】 MongoDB 是一个流行的开源、分布式文档数据库系统,以其灵活性、高性能和高可用性而受到欢迎。在 Java 开发环境中,可以通过 MongoDB 的 Java 驱动程序来实现对 MongoDB 数据库的...
以上就是Java操作MongoDB的基本步骤。这个“mongodb_helloworld”项目应该包含示例代码,帮助初学者快速上手。记得在实际应用中,你需要处理异常并适当地关闭MongoClient,以避免资源泄漏: ```java mongoClient....
在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...
Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...
Java操作MongoDB是一种常见的数据交互方式,特别是在Java后端开发中。MongoDB是一个NoSQL数据库,以其灵活性、高性能和易扩展性而受到欢迎。在Java中,我们可以使用MongoDB的Java驱动程序来与MongoDB进行通信。以下...
以上就是使用Java操作MongoDB的基本步骤。在实际项目中,你可能需要处理更复杂的查询和事务,以及错误处理和连接池管理等高级话题。学习更多关于MongoDB的官方文档和社区资源,如CSDN博客...
Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444
对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与MongoDB交互,实现文件的上传、下载、预览以及打包下载等功能。 首先,我们需要在Java项目中引入MongoDB的驱动库,通常是...
这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...
java操作mongodb的工具类,增删查改方法
在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。Spring框架则是一个强大的Java企业级...
以上就是使用Java操作MongoDB的基本步骤。在实际应用中,你可能需要处理更复杂的查询和更新,以及错误处理、连接管理等。MongoDB提供了丰富的查询表达式,如`$gt`, `$lt`, `$in`, `$exists`等,以及聚合框架和地理...
Java操作MongoDB是一种常见的数据交互方式,特别是在大数据和分布式系统中。MongoDB是一个高性能、开源、无模式的文档型数据库,而Java作为广泛使用的编程语言,提供了丰富的库和API来与MongoDB进行交互。本Demo提供...
为了更深入地了解如何使用Java操作MongoDB,你需要学习以下知识点: 1. **MongoDB Java驱动程序**:了解如何添加驱动程序依赖,以及如何创建`MongoClient`实例来连接到MongoDB服务器。 2. **数据模型**:理解...
### JAVA操作MongoDB知识点详解 #### 1. Java操作MongoDB简介 MongoDB是一种面向文档的NoSQL数据库,它提供了灵活的文档模型和高性能的读写操作,非常适合处理大量的数据和快速迭代的开发环境。而Java是一种广泛...
Java 操作 MongoDB 是一个常见的需求,特别是在开发基于 Java 的应用程序时需要存储和检索非结构化数据。本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要...