Java MongoDB數據庫連接方法梳理
前言
本節將介紹如何設置和使用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中導入坐標
<!-- mongodb鏈接驅動 --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>3.6.4</version> </dependency> <!-- Google Gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency>
java連接MongoDB數據庫
public class Test01 { public static void main(String[] args) { //查找 //獲取對象 MongoClient mc =new MongoClient("localhost",27017); //打印 System.out.println(mc); //獲取庫對象 MongoDatabase db = mc.getDatabase("myschoolxxx"); //獲取庫中表的集合 MongoIterable<String> iterable = db.listCollectionNames(); MongoCursor<String> iterator = iterable.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); System.out.println("wod"); } mc.close(); } }
增加數據
package com.ape.conn; import java.util.Date; import org.bson.Document; import com.ape.bean.Student; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class Insert { public static void main(String[] args) { //獲取對象 MongoClient mc =new MongoClient("localhost",27017); //獲取庫對象 MongoDatabase db = mc.getDatabase("myschoolxxx"); //獲取表對象 MongoCollection<Document> student = db.getCollection("student"); //創建學生對象 Student s = new Student(); s.setSid(6); s.setSname("趙六"); s.setBirthday(new Date()); s.setSsex("女"); s.setClassid(20); //創建愛你一個document獨享 Document doc = new Document(); //存入數據 doc.put("sid", s.getSid()); doc.put("sname", s.getSname()); doc.put("birhday", s.getBirthday()); doc.put("ssex", s.getSsex()); doc.put("classid", s.getClassid()); student.insertOne(doc); //釋放資源 mc.close(); } }
Java連接MongoDB的常用方法詳解
修改數據
package com.ape.conn; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.result.UpdateResult; public class Update { public static void main(String[] args) { //獲取對象 MongoClient mc =new MongoClient("localhost",27017); //獲取庫對象 MongoDatabase db = mc.getDatabase("myschoolxxx"); //獲取表對象 MongoCollection<Document> student = db.getCollection("student"); //修改 //條件對象 Bson eq = Filters.eq("sname","趙六"); //document當選 Document doc = new Document(); doc.put("$set", new Document("ssex","男")); UpdateResult updateOne = student.updateOne(eq, doc); System.out.println(updateOne); mc.close(); } }
可以看到剛開始有三個趙六,修改後隻修改瞭第一個趙六的性別。
刪除一條數據
package com.ape.conn; import org.bson.Document; import org.bson.conversions.Bson; import com.google.gson.Gson; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.result.DeleteResult; public class Delete { public static void main(String[] args) { //獲取對象 MongoClient mc =new MongoClient("localhost",27017); //獲取庫對象 MongoDatabase db = mc.getDatabase("myschoolxxx"); //獲取表對象 MongoCollection<Document> student = db.getCollection("student"); //創建刪除對象 Bson eq = Filters.eq("sname", "趙六"); DeleteResult deleteOne = student.deleteOne(eq); //刪除一條 System.out.println(deleteOne.getDeletedCount()); if(deleteOne.getDeletedCount() > 0) { System.out.println("刪除成功"); }else { System.out.println("刪除失敗"); } mc.close(); } }
查詢數據
package com.ape.conn; import java.util.List; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoIterable; public class Test01 { public static void main(String[] args) { //查找 //獲取對象 MongoClient mc =new MongoClient("localhost",27017); //獲取庫對象 MongoDatabase db = mc.getDatabase("myschoolxxx"); //獲取表對象 MongoCollection<Document> student = db.getCollection("student"); //獲取表中數據 FindIterable<Document> find = student.find(); //獲取迭代器對象 MongoCursor<Document> iterator2 = find.iterator(); //輸出表中數據 while (iterator2.hasNext()) { Document document = (Document) iterator2.next(); System.out.println(document); } //關閉資源 mc.close(); } }
到此這篇關於Java MongoDB數據庫連接方法梳理的文章就介紹到這瞭,更多相關Java MongoDB內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java連接MongoDB的常用方法詳解
- Java操作MongoDB數據庫的示例代碼
- SpringBoot系列之MongoDB Aggregations用法詳解
- Spring Boot使用GridFS實現文件的上傳和下載方式
- Java 深入淺出掌握Collection單列集合Set