经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
Java MongoDB数据库连接方法梳理
来源:jb51  时间:2022/8/16 13:27:29  对本文有异议

前言

本节将介绍如何设置和使用MongoDB 驱动程序,通过 java实现与MongoDB服务端的通信功能,用户可以在此基础上进行各种Java程序的开发,例如最基本的增删改查操作。

一、MongoDB简介

通过启动mongo进程如Shell环境访问数据库外,MongoDB还提供了其他基于编程语言的访问数据库方法。MongoDB官方提供了Java和Python语言的驱动包,利用这些驱动包可使用多种编程方法来连接并操作MongoDB数据库。本篇文章重点讲解java语言的连接方式。

特点

  • JSON结构和对象模型接近,开发代码量低
  • JSON的动态模型意味着更容易响应新的业务需求
  • 复制集提供99.999%高可用
  • 分片架构支持海量数据和无缝扩容

缺点

  • MongoDB 不支持事务
  • MongoDB 不能进行多表联查

MongoDB 应用场景

1.社交场景,比如朋友圈,附近的人的地点的存储

2.游戏场景,比如用户当前装备,得分等

3.物流场景,比如快递的位置,状态,途径

4.视频场景,比如直播中的点赞数和互动留言等

MongoDBAPI

二、连接MongoDB前的准备工作

下载

MongoDB官网:MongoDB Community Download | MongoDB

Studio 3T官网:The Professional Client, IDE and GUI for MongoDB | Studio 3T

eclipse官网:Eclipse Downloads | The Eclipse Foundation

创建工程并且导入jar包

idea则在pom.xml中导入坐标

  1. <!-- mongodb链接驱动 -->
  2. <dependency>
  3. <groupId>org.mongodb</groupId>
  4. <artifactId>mongodb-driver-sync</artifactId>
  5. <version>3.6.4</version>
  6. </dependency>
  7. <!-- Google Gson -->
  8. <dependency>
  9. <groupId>com.google.code.gson</groupId>
  10. <artifactId>gson</artifactId>
  11. <version>2.8.2</version>
  12. </dependency>

java连接MongoDB数据库

  1. public class Test01 {
  2. public static void main(String[] args) {
  3. //查找
  4. //获取对象
  5. MongoClient mc =new MongoClient("localhost",27017);
  6. //打印
  7. System.out.println(mc);
  8. //获取库对象
  9. MongoDatabase db = mc.getDatabase("myschoolxxx");
  10. //获取库中表的集合
  11. MongoIterable<String> iterable = db.listCollectionNames();
  12. MongoCursor<String> iterator = iterable.iterator();
  13. while (iterator.hasNext()) {
  14. System.out.println(iterator.next());
  15. System.out.println("wod");
  16. }
  17. mc.close();
  18. }
  19. }

增加数据

  1. package com.ape.conn;
  2. import java.util.Date;
  3. import org.bson.Document;
  4. import com.ape.bean.Student;
  5. import com.mongodb.MongoClient;
  6. import com.mongodb.client.MongoCollection;
  7. import com.mongodb.client.MongoDatabase;
  8. public class Insert {
  9. public static void main(String[] args) {
  10. //获取对象
  11. MongoClient mc =new MongoClient("localhost",27017);
  12. //获取库对象
  13. MongoDatabase db = mc.getDatabase("myschoolxxx");
  14. //获取表对象
  15. MongoCollection<Document> student = db.getCollection("student");
  16. //创建学生对象
  17. Student s = new Student();
  18. s.setSid(6);
  19. s.setSname("赵六");
  20. s.setBirthday(new Date());
  21. s.setSsex("女");
  22. s.setClassid(20);
  23. //创建爱你一个document独享
  24. Document doc = new Document();
  25. //存入数据
  26. doc.put("sid", s.getSid());
  27. doc.put("sname", s.getSname());
  28. doc.put("birhday", s.getBirthday());
  29. doc.put("ssex", s.getSsex());
  30. doc.put("classid", s.getClassid());
  31. student.insertOne(doc);
  32. //释放资源
  33. mc.close();
  34. }
  35. }

 Java连接MongoDB的常用方法详解

修改数据

  1. package com.ape.conn;
  2. import org.bson.Document;
  3. import org.bson.conversions.Bson;
  4. import com.mongodb.MongoClient;
  5. import com.mongodb.client.MongoCollection;
  6. import com.mongodb.client.MongoDatabase;
  7. import com.mongodb.client.model.Filters;
  8. import com.mongodb.client.result.UpdateResult;
  9. public class Update {
  10. public static void main(String[] args) {
  11. //获取对象
  12. MongoClient mc =new MongoClient("localhost",27017);
  13. //获取库对象
  14. MongoDatabase db = mc.getDatabase("myschoolxxx");
  15. //获取表对象
  16. MongoCollection<Document> student = db.getCollection("student");
  17. //修改
  18. //条件对象
  19. Bson eq = Filters.eq("sname","赵六");
  20. //document当选
  21. Document doc = new Document();
  22. doc.put("$set", new Document("ssex","男"));
  23. UpdateResult updateOne = student.updateOne(eq, doc);
  24. System.out.println(updateOne);
  25. mc.close();
  26. }
  27. }

可以看到刚开始有三个赵六,修改后只修改了第一个赵六的性别。

删除一条数据

  1. package com.ape.conn;
  2. import org.bson.Document;
  3. import org.bson.conversions.Bson;
  4. import com.google.gson.Gson;
  5. import com.mongodb.MongoClient;
  6. import com.mongodb.client.MongoCollection;
  7. import com.mongodb.client.MongoDatabase;
  8. import com.mongodb.client.model.Filters;
  9. import com.mongodb.client.result.DeleteResult;
  10. public class Delete {
  11. public static void main(String[] args) {
  12. //获取对象
  13. MongoClient mc =new MongoClient("localhost",27017);
  14. //获取库对象
  15. MongoDatabase db = mc.getDatabase("myschoolxxx");
  16. //获取表对象
  17. MongoCollection<Document> student = db.getCollection("student");
  18. //创建删除对象
  19. Bson eq = Filters.eq("sname", "赵六");
  20. DeleteResult deleteOne = student.deleteOne(eq);
  21. //删除一条
  22. System.out.println(deleteOne.getDeletedCount());
  23. if(deleteOne.getDeletedCount() > 0) {
  24. System.out.println("删除成功");
  25. }else {
  26. System.out.println("删除失败");
  27. }
  28. mc.close();
  29. }
  30. }

查询数据

  1. package com.ape.conn;
  2. import java.util.List;
  3. import org.bson.Document;
  4. import com.mongodb.MongoClient;
  5. import com.mongodb.client.FindIterable;
  6. import com.mongodb.client.MongoCollection;
  7. import com.mongodb.client.MongoCursor;
  8. import com.mongodb.client.MongoDatabase;
  9. import com.mongodb.client.MongoIterable;
  10. public class Test01 {
  11. public static void main(String[] args) {
  12. //查找
  13. //获取对象
  14. MongoClient mc =new MongoClient("localhost",27017);
  15. //获取库对象
  16. MongoDatabase db = mc.getDatabase("myschoolxxx");
  17. //获取表对象
  18. MongoCollection<Document> student = db.getCollection("student");
  19. //获取表中数据
  20. FindIterable<Document> find = student.find();
  21. //获取迭代器对象
  22. MongoCursor<Document> iterator2 = find.iterator();
  23. //输出表中数据
  24. while (iterator2.hasNext()) {
  25. Document document = (Document) iterator2.next();
  26. System.out.println(document);
  27. }
  28. //关闭资源
  29. mc.close();
  30. }
  31. }

到此这篇关于Java MongoDB数据库连接方法梳理的文章就介绍到这了,更多相关Java MongoDB内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号