java連接Mongodb實(shí)現(xiàn)增刪改查
本文實(shí)例為大家分享了java連接Mongodb實(shí)現(xiàn)增刪改查的具體代碼,供大家參考,具體內(nèi)容如下
1.創(chuàng)建maven項(xiàng)目
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.4.1</version>
</dependency>
2.編寫代碼
1.查詢所有
package com.czxy.mongodb;
import com.alibaba.fastjson.JSON;
import com.mongodb.*;
import java.util.List;
import java.util.Set;
public class Find {
public static void main(String[] args) {
//客戶端鏈接
MongoClient mongodbClint = new MongoClient("localhost", 27017);
// 獲取所有的數(shù)據(jù)庫
List<String> databaseNames = mongodbClint.getDatabaseNames();
for (String databaseName : databaseNames) {
System.out.println("數(shù)據(jù)庫名稱 "+databaseName);
}
// 連接指定的數(shù)據(jù)庫
DB db = mongodbClint.getDB("text");
//獲取當(dāng)前數(shù)據(jù)庫下的所有集合名稱
Set<String> collectionNames = db.getCollectionNames();
for (String dbname : collectionNames) {
System.out.println("集合名稱 "+dbname);
}
// 連接指定的集合
DBCollection collection = db.getCollection("stus");
// 數(shù)據(jù)集合信息
DBCursor dbObjects = collection.find();
while (dbObjects.hasNext()){
//讀取數(shù)據(jù)
DBObject next = dbObjects.next();
// json 格式轉(zhuǎn)換
Stus parse = JSON.parseObject(next.toString(), Stus.class);
// 數(shù)據(jù)輸出
System.out.println(parse);
}
}
}
2.添加數(shù)據(jù)
package com.czxy.mongodb;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.util.HashMap;
import java.util.Map;
public class Insert {
public static void main(String[] args) {
// 獲取連接
MongoClient mongodbClint = new MongoClient("localhost", 27017);
// 連接數(shù)據(jù)庫
MongoDatabase database = mongodbClint.getDatabase("text");
// 獲取對象
MongoCollection<Document> stus = database.getCollection("stus");
Map<String, Object> map=new HashMap();
map.put("name", "諸葛亮");
map.put("sex", "男");
map.put("age", 35.0);
map.put("address", "南陽");
Document document = new Document(map);
System.out.println(document);
stus.insertOne(document);
}
}
3.刪除
package com.czxy.mongodb;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
/**
* 刪除
*/
public class Delete {
public static void main(String[] args) {
//獲取連接
MongoClient location = new MongoClient("localhost", 27017);
// 連接數(shù)據(jù)庫
MongoDatabase database = location.getDatabase("text");
//獲取集合封賬對象
MongoCollection<Document> collection = database.getCollection("stus");
// 刪除的條件
BasicDBObject dbObject = new BasicDBObject("name", "諸葛亮");
// 刪除符合條件的第一個(gè)
collection.deleteOne(dbObject);
// 刪除符合條件的所有
// collection.deleteMany(new BasicDBObject("name","lisi"));
}
}
4.修改
package com.czxy.mongodb;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.awt.*;
public class Update {
public static void main(String[] args) {
// 獲取連接
MongoClient mongoClient = new MongoClient();
// 連接數(shù)據(jù)庫
MongoDatabase database = mongoClient.getDatabase("text");
// 得到集合封裝隊(duì)象
MongoCollection<Document> stuo = database.getCollection("stus");
// 查詢條件
BasicDBObject upFind = new BasicDBObject("name", "wangwu");
// 修改的值
BasicDBObject upNew = new BasicDBObject("$set", new BasicDBObject("address", "高老莊"));
// 修改符合條件的第一個(gè)值
stuo.updateOne(upFind, upNew);
//修改符合條件的全部
// stuo.updateMany(upFind, upNew);
}
}
5.條件查詢
package com.czxy.mongodb;
import com.alibaba.fastjson.JSON;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class FindEq {
public static void main(String[] args) {
// 獲取連接
MongoClient mongoClient = new MongoClient();
// 連接數(shù)據(jù)庫
MongoDatabase database = mongoClient.getDatabase("text");
// 得到集合封裝隊(duì)象
MongoCollection<Document> stus = database.getCollection("stus");
// 查詢條件
BasicDBObject find = new BasicDBObject("name", "wangwu");
// 得到查詢結(jié)果
FindIterable<Document> results = stus.find(find);
// 集合遍歷
for (Document result : results) {
// 格式轉(zhuǎn)換
String s = JSON.toJSONString(result);
// 查詢結(jié)果輸出
System.out.println(JSON.parseObject(s,Stus.class));
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring應(yīng)用拋出NoUniqueBeanDefinitionException異常的解決方案
這篇文章介紹了解決org.springframework.beans.factory.NoUniqueBeanDefinitionException異常的一些解決方案,從這些解決方案可以看出Spring框架的設(shè)計(jì)精妙,遇見此問題的朋友可以參考下該解決方案2021-06-06
Java實(shí)現(xiàn)局域網(wǎng)聊天小程序
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)局域網(wǎng)聊天小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
SpringCloud-Gateway網(wǎng)關(guān)的使用實(shí)例教程
Gateway網(wǎng)關(guān)在微服務(wù)架構(gòu)中扮演了不可或缺的角色,通過集中化管理、智能路由和強(qiáng)大的過濾器機(jī)制,為構(gòu)建高效、可擴(kuò)展的微服務(wù)系統(tǒng)提供了有力支持,這篇文章主要介紹了SpringCloud-Gateway網(wǎng)關(guān)的使用,需要的朋友可以參考下2024-03-03
Spring實(shí)戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作,結(jié)合實(shí)例形式分析了Spring協(xié)調(diào)作用域不同步的Bean相關(guān)配置及使用技巧,需要的朋友可以參考下2019-11-11
SpringBoot 創(chuàng)建對象常見的幾種方式小結(jié)
Spring Boot中創(chuàng)建對象的幾種常見方式包括使用@Component、@Service、@Repository或@Controller注解,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下2024-11-11

