`
baobeituping
  • 浏览: 1067913 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVA 操作MONGOD

 
阅读更多

不爱说话爱技术,以下是我整理的关于对mongodb进行增删改查操作的一个工具类,恐有不足,向各位大拿们讨教。最后有一个源码及实现类和接口。

 

[java] view plain copy
 
  1. package com.iceter.DataBase;  
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. import org.bson.Document;  
  8. import org.bson.conversions.Bson;   
  9. import org.junit.Test;   
  10. import com.mongodb.BasicDBObject;  
  11. import com.mongodb.DB;  
  12. import com.mongodb.MongoClient;  
  13. import com.mongodb.MongoCredential;  
  14. import com.mongodb.ServerAddress;  
  15. import com.mongodb.client.FindIterable;  
  16. import com.mongodb.client.MongoCollection;  
  17. import com.mongodb.client.MongoCursor;  
  18. import com.mongodb.client.MongoDatabase;  
  19. import com.mongodb.client.model.Filters;   
  20. import com.mongodb.client.model.InsertOneOptions;  
  21. import com.mongodb.client.result.DeleteResult;  
  22. import com.mongodb.client.result.UpdateResult;   
  23. /** 
  24.  * 对mongodb的操作类 
  25.  * @author ice 
  26.  * 
  27.  */  
  28. public class IMongoJDBCUtilCJB{   
  29.       
  30.     private static IMongoJDBCUtilCJB mongoUtil;  
  31.   
  32.     private String address = "localhost";  
  33.     private int port = 27017;  
  34.     private String dataBase = "mycol";  
  35.     private String collection = "mycol";    
  36.       
  37.     MongoClient mongoClient ;              
  38.     MongoDatabase mongoDatabase ;             
  39.     MongoCollection<Document> mongoCol ;  
  40.   
  41.     private void getMongoCon() {  
  42.           
  43.         mongoClient = new MongoClient( address , port );               
  44.         mongoDatabase = mongoClient.getDatabase(dataBase);                 
  45.         mongoCol = mongoDatabase.getCollection(collection);  
  46.     }  
  47.     //单利  
  48.     public static IMongoJDBCUtilCJB getInstance(String address,int port,String dataBase,String collection){  
  49.         if (mongoUtil!=null) {  
  50.             return mongoUtil;  
  51.         }else {  
  52.             return new IMongoJDBCUtilCJB(address,port,dataBase,collection);  
  53.         }  
  54.   
  55.     }   
  56.     /** 
  57.      * 根据地址,数据库及连接名称连接到数据库 
  58.      * @param address 数据库连接地址 
  59.      * @param port  数据库端口 
  60.      * @param dataBase 实例名 
  61.      * @param collection 连接名 
  62.      */  
  63.     public IMongoJDBCUtilCJB(String address,int port,String dataBase,String collection) {  
  64.   
  65.         this.address = address;  
  66.         this.dataBase = dataBase;  
  67.         this.collection = collection;  
  68.         //实例化  
  69.         getMongoCon();   
  70.     }  
  71.     /** 
  72.      * 连接到数据库 
  73.      * @return  
  74.      */  
  75.     @Test  
  76.     public boolean mongodbConTest() {   
  77.           
  78.         try{      
  79.             // 连接到 mongodb 服务  
  80.             MongoClient mongoClient = new MongoClient( address , port );   
  81.             // 连接到数据库  
  82.             MongoDatabase mongoDatabase = mongoClient.getDatabase(dataBase);    
  83.             System.out.println("Connect to database successfully");  
  84.             mongoDatabase.createCollection(collection);    
  85.             return true;  
  86.         }catch(Exception e){  
  87.             System.err.println(e.getClass().getName() + "->" + e.getMessage());  
  88.             return false;  
  89.         }   
  90.     }  
  91.   
  92.     /** 
  93.      * 创建集合  
  94.      */  
  95.     @Test  
  96.     public void mongodbCreate() {   
  97.             getMongoCon();   
  98.             mongoDatabase.createCollection(collection);    
  99.     }  
  100.   
  101.     /** 
  102.      * 向mongodb添加数据 
  103.      */  
  104.     @Test  
  105.     public void mongdbAddDoc(Document doc) {  
  106.    
  107.         getMongoCon();   
  108.         mongoCol.insertOne(doc);   
  109.     }  
  110.     /** 
  111.      * 关闭mongodb连接 
  112.      */  
  113.     @Test  
  114.     public void mongoClose() {  
  115.   
  116.         getMongoCon();   
  117.         mongoClient.close();  
  118.     }  
  119.   
  120.     /** 
  121.      * 根据固定条件向mongodb添加数据  
  122.      */  
  123.     @Test  
  124.     public void mongdbAddDocByOptions(Document doc,InsertOneOptions options) {  
  125.    
  126.         getMongoCon();   
  127.         mongoCol.insertOne(doc, options);   
  128.           
  129.   
  130.     }  
  131.     /** 
  132.      * 向mongodb添加多条数据 
  133.      */  
  134.     @Test  
  135.     public void mongdbAddDocs(List<Document> list) {  
  136.    
  137.         getMongoCon();   
  138.         mongoCol.insertMany(list);    
  139.           
  140.   
  141.     }  
  142.     /** 
  143.      * 向mongodb删除一条数据 
  144.      * @param filter  
  145.      * 查询条件 //注意Bson的几个实现类,BasicDBObject, BsonDocument,  
  146.      * BsonDocumentWrapper, CommandResult, Document, RawBsonDocument  
  147.      */  
  148.     @Test  
  149.     public DeleteResult mougdbDel(BasicDBObject basic) {  
  150.    
  151.         getMongoCon();   
  152.         Bson filter = basic;   
  153.         DeleteResult dResult = mongoCol.deleteOne(filter);   
  154.           
  155.         return dResult;   
  156.     }  
  157.     /** 
  158.      * 向mongodb删除多条数据 
  159.      * @param filter  
  160.      * 查询条件 //注意Bson的几个实现类,BasicDBObject, BsonDocument,  
  161.      * BsonDocumentWrapper, CommandResult, Document, RawBsonDocument  
  162.      */  
  163.     @Test  
  164.     public DeleteResult  mougdbDels(BasicDBObject basic) {  
  165.    
  166.         getMongoCon();   
  167.         Bson filter = basic;   
  168.         DeleteResult dResult = mongoCol.deleteMany(filter);   
  169.           
  170.         return dResult;   
  171.     }  
  172.     /** 
  173.      * 向mongodb修改单条数据 
  174.      * @param filter  
  175.      * @param update 
  176.      * @return 
  177.      */  
  178.     @Test  
  179.     public UpdateResult mongdbUpdateOne(Bson filter, Bson update) {  
  180.    
  181.         getMongoCon();   
  182.         UpdateResult result = mongoCol.updateOne(filter, update);  
  183.         return result;   
  184.     }   
  185.     /** 
  186.      * 向mongodb修改单条数据 
  187.      * @param filter  
  188.      * @param update 
  189.      * @return 
  190.      */  
  191.     @Test  
  192.     public UpdateResult mongdbUpdateMany(Bson filter, Bson update) {  
  193.    
  194.         getMongoCon();   
  195.         UpdateResult result = mongoCol.updateMany(filter, update);  
  196.         return result;   
  197.     }    
  198.     /** 
  199.      * mongodb根据固定条件查询数据查询数据 
  200.      */  
  201.     @Test  
  202.     public List<Document> mongdbQuery(Bson bson) {  
  203.   
  204.         getMongoCon();   
  205.         List<Document> array = new ArrayList<>();   
  206.         FindIterable<Document> findy = mongoCol.find(bson);  
  207.         MongoCursor<Document> cursor = findy.iterator();  
  208.         while (cursor.hasNext()) {  
  209.   
  210.             array.add(cursor.next());   
  211.         }  
  212.         return array;   
  213.     }   
  214.     /** 
  215.      * mongodb根据BasicDBObject中的固定条件查询数据查询数据 
  216.      */  
  217.     @Test  
  218.     public List<Document> mongdbQuery(BasicDBObject obj) {  
  219.   
  220.         getMongoCon();   
  221.         List<Document> array = new ArrayList<>();  
  222.         Bson bson = obj;  
  223.         FindIterable<Document> findy = mongoCol.find(bson);  
  224.         MongoCursor<Document> cursor = findy.iterator();  
  225.         while (cursor.hasNext()) {  
  226.   
  227.             array.add(cursor.next());   
  228.         }  
  229.         return array;   
  230.     }   
  231.     /** 
  232.      * 根据key和value值查询数据 
  233.      * @param key 查询字段 
  234.      * @param value 查询内容 
  235.      * @return 
  236.      */  
  237.     @Test  
  238.     public List<Document> mongdbQuery(String key,Object value) {  
  239.   
  240.         getMongoCon();   
  241.         List<Document> array = new ArrayList<>();  
  242.         Bson bson = new BasicDBObject().append(key, value);  
  243.         FindIterable<Document> findy = mongoCol.find(bson);  
  244.         MongoCursor<Document> cursor = findy.iterator();  
  245.         while (cursor.hasNext()) {  
  246.   
  247.             array.add(cursor.next());   
  248.         }  
  249.         return array;   
  250.     }   
  251.     /** 
  252.      * 向mongodb查询所有数据 
  253.      */  
  254.     @Test  
  255.     public List<Document> mongdbQuerys() {  
  256.         getMongoCon();   
  257.         List<Document> array = new ArrayList<>();  
  258.         FindIterable<Document> findAll = mongoCol.find();  
  259.         MongoCursor<Document> corsor = findAll.iterator();  
  260.         while (corsor.hasNext()) {  
  261.                
  262.             array.add(corsor.next());   
  263.         }  
  264.         return array;  
  265.   
  266.     }  
  267.     /** 
  268.      * 通过用户名密码登录(待测试) 
  269.      */  
  270.     @Test  
  271.     public void getConUsePass(){   
  272.         try {    
  273.             //连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址    
  274.             //ServerAddress()两个参数分别为 服务器地址 和 端口    
  275.             ServerAddress serverAddress = new ServerAddress(address,27017);    
  276.             List<ServerAddress> addrs = new ArrayList<ServerAddress>();    
  277.             addrs.add(serverAddress);    
  278.   
  279.             //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码    
  280.             MongoCredential credential = MongoCredential.createScramSha1Credential("username""databaseName""password".toCharArray());    
  281.             List<MongoCredential> credentials = new ArrayList<MongoCredential>();    
  282.             credentials.add(credential);    
  283.   
  284.             //通过连接认证获取MongoDB连接    
  285.             MongoClient mongoClient = new MongoClient(addrs,credentials);    
  286.   
  287.             //连接到数据库    
  288.             MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");    
  289.             System.out.println("Connect to database successfully");    
  290.         } catch (Exception e) {    
  291.             System.err.println(e.getClass().getName() + "->" + e.getMessage());    
  292.         }     
  293.     }   
  294.     /** 
  295.      * 测试类,仅供测试使用 
  296.      */  
  297.     @Test  
  298.     public void mongodbTest() {  
  299.         try{     
  300.                
  301.         }catch(Exception e){  
  302.             System.err.println(e.getClass().getName() + "->" + e.getMessage());  
  303.         }  
  304.   
  305.     }  
  306.     /**                                                                                                 
  307.      *  
  308.      * @param args 
  309.      */  
  310.     public static void main( String args[] ){  
  311.   
  312.         IMongoJDBCUtilCJB util = IMongoJDBCUtilCJB.getInstance("localhost"27010"database""mycol");  
  313. //      IMongoJDBCUtil util = new IMongoJDBCUtil(address, 27010, "database", dataBase);    
  314. //      util.mongoClose();  
  315. //        
  316. //       DeleteResult d = util.mougdbDel(new BasicDBObject().append("age", 200));  
  317. //       System.out.println(d.getDeletedCount());  
  318.         util.mongodbTest();  
  319.     }  
  320.   
  321. }  
分享到:
评论

相关推荐

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    java 操作mongodb

    【Java 操作 MongoDB 知识点详解】 MongoDB 是一个流行的开源、分布式文档数据库系统,以其灵活性、高性能和高可用性而受到欢迎。在 Java 开发环境中,可以通过 MongoDB 的 Java 驱动程序来实现对 MongoDB 数据库的...

    java 操作mongodb 增删改查

    以上就是Java操作MongoDB的基本步骤。这个“mongodb_helloworld”项目应该包含示例代码,帮助初学者快速上手。记得在实际应用中,你需要处理异常并适当地关闭MongoClient,以避免资源泄漏: ```java mongoClient....

    Mongodb + GridFS +Java 操作Mongodb中存储的文件

    在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...

    java操作mongoDB(CRUD)

    Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...

    java操作mongodb示例分享

    Java操作MongoDB是一种常见的数据交互方式,特别是在Java后端开发中。MongoDB是一个NoSQL数据库,以其灵活性、高性能和易扩展性而受到欢迎。在Java中,我们可以使用MongoDB的Java驱动程序来与MongoDB进行通信。以下...

    JAVA操作MongoDB简单增删改查

    以上就是使用Java操作MongoDB的基本步骤。在实际项目中,你可能需要处理更复杂的查询和事务,以及错误处理和连接池管理等高级话题。学习更多关于MongoDB的官方文档和社区资源,如CSDN博客...

    Java操作MongoDB实例

    Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444

    java操作mongoDB实现文件上传预览打包下载

    对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与MongoDB交互,实现文件的上传、下载、预览以及打包下载等功能。 首先,我们需要在Java项目中引入MongoDB的驱动库,通常是...

    Java操作MongoDB之CRUD(增删改查)

    这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...

    java操作mongodb的工具类

    java操作mongodb的工具类,增删查改方法

    JAVA操作MongoDB之spring整合

    在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。Spring框架则是一个强大的Java企业级...

    Java操作mongoDB使用文档.docx(16页.docx

    以上就是使用Java操作MongoDB的基本步骤。在实际应用中,你可能需要处理更复杂的查询和更新,以及错误处理、连接管理等。MongoDB提供了丰富的查询表达式,如`$gt`, `$lt`, `$in`, `$exists`等,以及聚合框架和地理...

    java操作mongodb的demo(带驱动jar)

    Java操作MongoDB是一种常见的数据交互方式,特别是在大数据和分布式系统中。MongoDB是一个高性能、开源、无模式的文档型数据库,而Java作为广泛使用的编程语言,提供了丰富的库和API来与MongoDB进行交互。本Demo提供...

    Java操作MongoDB数据库示例分享

    为了更深入地了解如何使用Java操作MongoDB,你需要学习以下知识点: 1. **MongoDB Java驱动程序**:了解如何添加驱动程序依赖,以及如何创建`MongoClient`实例来连接到MongoDB服务器。 2. **数据模型**:理解...

    JAVA操作MongoDB

    ### JAVA操作MongoDB知识点详解 #### 1. Java操作MongoDB简介 MongoDB是一种面向文档的NoSQL数据库,它提供了灵活的文档模型和高性能的读写操作,非常适合处理大量的数据和快速迭代的开发环境。而Java是一种广泛...

    java操作mongodb

    Java 操作 MongoDB 是一个常见的需求,特别是在开发基于 Java 的应用程序时需要存储和检索非结构化数据。本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要...

Global site tag (gtag.js) - Google Analytics