问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 怎么封装操作mongodb的 baseDao 不用spring data mongodb

发布网友 发布时间:2022-04-30 23:16

我来回答

2个回答

懂视网 时间:2022-05-01 03:37

   技术分享技术分享
  1. package monAndMysql;  
  2.    
  3. import java.util.ArrayList;  
  4. import java.util.Date;  
  5. import java.util.List;  
  6. import java.util.Set;  
  7. import org.bson.BsonDocument;  
  8. import org.bson.BsonString;  
  9. import org.bson.Document;  
  10. import org.bson.conversions.Bson;  
  11. import com.mongodb.BasicDBObject;  
  12. import com.mongodb.DB;  
  13. import com.mongodb.DBCollection;  
  14. import com.mongodb.DBCursor;  
  15. import com.mongodb.DBObject;  
  16. import com.mongodb.MongoClient;  
  17. import com.mongodb.MongoCredential;  
  18. import com.mongodb.ServerAddress;  
  19. import com.mongodb.client.FindIterable;  
  20. import com.mongodb.client.MongoCollection;  
  21. import com.mongodb.client.MongoCursor;  
  22. import com.mongodb.client.MongoDatabase;  
  23. import com.mongodb.client.model.Filters;  
  24.    
  25. /** 
  26.  * mongodb和mysql性能测试 
  27.  * 
  28.  * @author tuzongxun123 
  29.  * 
  30.  */  
  31. public class MonAndMysqlTest {  
  32.    
  33.     public static void main(String[] args) {  
  34.        mongodbTest();  
  35.     }  
  36.    
  37.     public static void mongodbTest() {  
  38.        ServerAddress sa = new ServerAddress("192.168.0.7", 27017);  
  39.        List<MongoCredential> mongoCredentialList = newArrayList<MongoCredential>();  
  40.        // java代码连接mongodb3.0数据库验证,userName,dbName,password  
  41.        mongoCredentialList.add(MongoCredential.createMongoCRCredential(  
  42.               "admin", "admin", "123456".toCharArray()));  
  43.        MongoClient client = new MongoClient(sa, mongoCredentialList);  
  44.        // 第一种方式  
  45.        // 第一种方式获取db,该方法已经不建议使用  
  46.        DB mongoDB = client.getDB("mongoTest1");  
  47.        DBCollection collection1 = mongoDB.getCollection("userTest1");  
  48.        // 这里的数据类型是dbobject  
  49.        DBObject document1 = new BasicDBObject();  
  50.        document1.put("name", "mongoTest1");  
  51.        document1.put("createTime", new Date().getTime());  
  52.        // 插入数据  
  53.        collection1.insert(document1);  
  54.        // 查询数据  
  55.        DBCursor cursor1 = collection1.find();  
  56.        System.out.println("第一种方式插入数据的结果:");  
  57.        while (cursor1.hasNext()) {  
  58.            DBObject object = cursor1.next();  
  59.            Set<String> keySet = object.keySet();  
  60.            for (String key : keySet) {  
  61.               System.out.println(key + ":" + object.get(key));  
  62.            }  
  63.        }  
  64.        // 更改数据  
  65.        DBObject query = new BasicDBObject();  
  66.        DBObject update = new BasicDBObject();  
  67.        query.put("name", "mongoTest1");  
  68.        update.put("$set", new BasicDBObject("name", "update1"));  
  69.        collection1.update(query, update);  
  70.        System.out  
  71.            .println("--------------------------------------------------------------------------------------");  
  72.        System.out.println("第一种方式修改数据的结果:");  
  73.        DBCursor cursor11 = collection1.find();  
  74.        while (cursor11.hasNext()) {  
  75.            DBObject object = cursor11.next();  
  76.            Set<String> keySet = object.keySet();  
  77.            for (String key : keySet) {  
  78.               System.out.println(key + ":" + object.get(key));  
  79.            }  
  80.        }  
  81.        // 删除数据  
  82.        DBObject query1 = new BasicDBObject();  
  83.        query1.put("name", "update1");  
  84.        collection1.remove(query1);  
  85.        System.out  
  86.            .println("--------------------------------------------------------------------------------------");  
  87.        System.out.println("第一种方式删除数据的结果:");  
  88.        DBCursor cursor12 = collection1.find();  
  89.        while (cursor12.hasNext()) {  
  90.            DBObject object = cursor12.next();  
  91.            Set<String> keySet = object.keySet();  
  92.            for (String key : keySet) {  
  93.               System.out.println(key + ":" + object.get(key));  
  94.            }  
  95.        }  
  96.        // 第二种方式  
  97.        System.out  
  98.                .println("****************************************************************************");  
  99.        // 第二种方式获取db及插入数据和查询操作。推荐方式  
  100.        MongoDatabase database = client.getDatabase("mongoTest2");  
  101.        // 注意这里的数据类型是document  
  102.        Document document2 = new Document();  
  103.        document2.put("name", "mongoTest2");  
  104.        document2.put("createTime", new Date().getTime());  
  105.        MongoCollection collection2 = database.getCollection("userTest2");  
  106.        // 插入数据  
  107.        collection2.insertOne(document2);  
  108.        // 查询数据,注意这里直接查询出的结果不是游标,还需要转换  
  109.        FindIterable<Document> findIterable = collection2.find();  
  110.        MongoCursor<Document> cursor2 = findIterable.iterator();  
  111.        System.out.println("第二种方式插入数据的结果:");  
  112.        while (cursor2.hasNext()) {  
  113.            Document document = cursor2.next();  
  114.            Set<String> keySet = document.keySet();  
  115.            for (String key : keySet) {  
  116.               System.out.println(key + ":" + document.get(key));  
  117.            }  
  118.        }  
  119.        // 更改数据  
  120.    
  121.        Bson filter = Filters.eq("name", "mongoTest2");  
  122.        BsonDocument update2 = new BsonDocument();  
  123.        update2.put("$set", new BsonDocument("name", new BsonString("update2")));  
  124.        collection2.updateOne(filter, update2);  
  125.        System.out  
  126.            .println("--------------------------------------------------------------------------------------");  
  127.        MongoCursor<Document> cursor21 = findIterable.iterator();  
  128.        System.out.println("第二种方式更改数据的结果:");  
  129.        while (cursor21.hasNext()) {  
  130.            Document document = cursor21.next();  
  131.            Set<String> keySet = document.keySet();  
  132.            for (String key : keySet) {  
  133.               System.out.println(key + ":" + document.get(key));  
  134.            }  
  135.        }  
  136.        // 删除数据  
  137.        Bson filter2 = Filters.eq("name", "update2");  
  138.        collection2.deleteOne(filter2);  
  139.        System.out  
  140.            .println("--------------------------------------------------------------------------------------");  
  141.        MongoCursor<Document> cursor22 = findIterable.iterator();  
  142.        System.out.println("第二种方式删除数据的结果:");  
  143.        while (cursor22.hasNext()) {  
  144.            Document document = cursor22.next();  
  145.            Set<String> keySet = document.keySet();  
  146.            for (String key : keySet) {  
  147.               System.out.println(key + ":" + document.get(key));  
  148.            }  
  149.        }  
  150.        // 关闭数据库连接  
  151.        client.close();  
  152.     }  
  153.    
  154. }  



 

执行main方法后,控制台打印结果如下图所示,证明操作都是没有问题的:

技术分享

不使用spring的情况下原生java代码两种方式操作mongodb数据库

标签:

热心网友 时间:2022-05-01 00:45

MongoClient client = new MongoClient("192.168.0.110", 27017);
DBCollection dbCollection = client.getDB("test").getCollection("update_array");
dbCollection.drop();
dbCollection = client.getDB("test").getCollection("update_array");
BasicDBObject dbObject = new BasicDBObject();
dbObject.append("id", 583739819102582565L).append("kids", Arrays.asList("1", "2", "3"));
dbCollection.insert(dbObject);
System.out.println(dbCollection.findOne());
BasicDBObject dbObject2 = new BasicDBObject(dbObject);
dbObject2.append("kids", Arrays.asList("1", "2", "3", "4"));
dbCollection.update(dbObject, dbObject2);
System.out.println(dbCollection.findOne());

测试结果:

{ "_id" : { "$oid" : "546f37f7d01de241a1e143e8"} , "id" : 583739819102582565 , "kids" : [ "1" , "2" , "3"]}

{ "_id" : { "$oid" : "546f37f7d01de241a1e143e8"} , "id" : 583739819102582565 , "kids" : [ "1" , "2" , "3" , "4"]}

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.3</version>
</dependency>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医生你好 我脸上跟额头上面长了很多小粉刺 请问这是什么原因引起的 要... 世界上到底是先有的鸡还是先有的蛋 请问是先有蛋,还是先有鸡? Excel怎么设置行高并且垂直 晚上梦见一条又长又小的青蛇追着咬我最后被我爸爸打死了代表什么... 专业技能怎么填我来教你 QQ空间曾经有一个左右接东西 小游戏叫什么名字 帽子先生接东西游戏介绍 趣味卡车接东西游戏介绍 怀孕50天B超的表现 计算机网络基础 第三版 习题答案 李志球 计算机网络基础 复习题 计算机网络技术基础题目 求解答 计算机网络技术基础课后习题答案,主编阚宝朋有谁有这本书的答案的? 计算机网络基础答案,急! 计算机网络基础的题目,求答案啊!!! 计算机网络基础卷的答案 笔记本上一直显示请稍后,开不了机 交通银行催收部门年终总结 怎么写 跪求! 笔记本电脑显示请稍等? 软考网络工程师问题 天赐材料股票股吧 300842帝科股份股股吧 对考网络工程师有经验的请进!!! 中天科技股吧股票行情 怎样用微信支付话费 考网络工程师要看些什么书? 话费怎么可以微信支付? 我老公他最近两年自己老实感觉偷看别人,请问是心里问题吗?应该看什么医生?谢谢 300821东岳硅材股票股吧 求计算机网络与Internet基础(习题)答案~~~急急 计算机网络技术基础 阚宝明 课后习题答案 如何画黑板报 黑板报怎么画黑板报怎么画报 黑板报老师怎么画? 芦笋炒山药怎么做 芦笋炒山药的做法步骤图,芦笋炒山药怎么做 山药可以怎么做? 请教一下和露绿芦笋山药泥的做法? 康明斯发动机故障代码2377是什么意思 徐工挖机200D2377报警是啥意思 内部错误2377什么意思 2377钛白粉同237钛白粉有什么不同 &quot;0x1a441a97&quot;指令引用的“0x23772ad8”内存。该内存不能为“read”。 是什么意思??? 232377在爱情里代表什么,谁能回答? 男朋友突然发给我一个237不知道是什么意思 miui10亲情守护怎么卸载 POJ 2377自己的代码为什么一直wa?明明样例过了和别人的题解区别也不是很大…… 微信只记得,手机号码手机了密码忘记了,怎么找回来- 问一问 亲情守护怎么解绑