【MongoDB数据库】JavaMongoDBCRUDExample
上一篇我们讲了MongoDB 的命令入门初探,本篇blog将基于上一篇blog所建立的数据库和表完成一个简单的Java MongoDB CRUD Example,利用Java连接MongoDB数据库,并实现创建数据库、获取表、遍历表中的对象、对表中对象进行CRUD操作等例程。 1、下载MongoDB Jav
上一篇我们讲了MongoDB 的命令入门初探,本篇blog将基于上一篇blog所建立的数据库和表完成一个简单的Java MongoDB CRUD Example,利用Java连接MongoDB数据库,并实现创建数据库、获取表、遍历表中的对象、对表中对象进行CRUD操作等例程。
1、下载MongoDB Java 支持驱动包
【gitHub下载地址】https://github.com/mongodb/mongo-java-driver/downloads
2、建立Java工程,并导入jar包
3、连接本地数据库服务器
在控制面板中开启Mongodb服务,具体操作可参考【MongoDB数据库】如何安装、配置MongoDB
try { mongo = new MongoClient("localhost", 27017);// 保证MongoDB服务已经启动 db = mongo.getDB("andyDB");// 获取到数据库 } catch (UnknownHostException e) { e.printStackTrace(); }
3、遍历所有的数据库名
public class DBConnection extends TestCase { private MongoClient mongo; private DB db ; @Override protected void setUp() throws Exception { // TODO Auto-generated method stub super.setUp(); try { mongo = new MongoClient("localhost", 27017);// 保证MongoDB服务已经启动 db = mongo.getDB("andyDB");// 获取到数据库andyDB } catch (UnknownHostException e) { e.printStackTrace(); } } public void testGetAllDB() { List<String> dbs = mongo.getDatabaseNames();// 获取到所有的数据库名 for (String dbname : dbs) { System.out.println(dbname); } } }
4、获取到指定数据库
DB db = mongo.getDB("andyDB");// 获取到数据库
5、遍历数据库中所有的表名
在DBConnection测试类中添加如下测试方法即可:
public void testGetAllTables() { Set<String> tables = db.getCollectionNames(); for (String coll : tables) { System.out.println(coll); } }
6、获取到指定的表
DBCollection table = db.getCollection("person");
7、遍历表中所有的对象
public void testFindAll(){ DBCollection table = db.getCollection("person"); DBCursor dbCursor = table.find(); while(dbCursor.hasNext()){ DBObject dbObject = dbCursor.next(); //打印该对象的特定字段信息 System.out.println("name:"+ dbObject.get("name")+",age:"+dbObject.get("age")); //打印该对象的所有信息 System.out.println(dbObject); } }
Console窗口打印消息:
name:jack,age:50.0
{ "_id" : { "$oid" : "537761da2c82bf816b34e6cf"} , "name" : "jack" , "age" : 50.0}
name:小王,age:24
{ "_id" : { "$oid" : "53777096d67d552056ab8916"} , "name" : "小王" , "age" : 24}
8、保存对象
1)保存对象方法一
public void testSave() { DBCollection table = db.getCollection("person"); BasicDBObject document = new BasicDBObject(); document.put("name", "小郭");// 能直接插入汉字 document.put("age", 24);//"age"对应的值是int型 table.insert(document); }
> db.person.find()
{ "_id" : ObjectId("537761da2c82bf816b34e6cf"), "name" : "jack", "age" : 50 }
{ "_id" : ObjectId("53777096d67d552056ab8916"), "name" : "小王", "age" : 24 }
{ "_id" : ObjectId("5377712cd67d84f62c65c4f6"), "name" : "小郭", "age" : 24 }
2)保存对象方法二
public void testSave2() { DBCollection table = db.getCollection("person"); BasicDBObject document = new BasicDBObject();//可以添加多个字段 document.put("name", "小张");// 能直接插入汉字 document.put("password", "xiaozhang");// 多添加一个字段也是可以的,因为MongoDB保存的是对象; document.put("age", "23");//"age"对应的值是String table.insert(document); }
在mongodb shell中使用命令查看数据
> db.person.find()
{ "_id" : ObjectId("537761da2c82bf816b34e6cf"), "name" : "jack", "age" : 50 }
{ "_id" : ObjectId("53777096d67d552056ab8916"), "name" : "小王", "age" : 24 }
{ "_id" : ObjectId("5377712cd67d84f62c65c4f6"), "name" : "小郭", "age" : 24 }
{ "_id" : ObjectId("53777230d67dfe576de5079a"), "name" : "小张", "password" : "xiaozhang", "age" : "23" }
3)保存对象方法三(通过添加Map集合的方式添加数据到BasicDBObject)
public void testSave3(){ DBCollection table = db.getCollection("person"); Map<String,Object> maps = new HashMap<String,Object>(); maps.put("name", "小李"); maps.put("password", "xiaozhang"); maps.put("age", 24); BasicDBObject document = new BasicDBObject(maps);//这样添加后,对象里的字段是无序的。 table.insert(document); }
在mongodb shell中使用命令查看数据
> db.person.find()
{ "_id" : ObjectId("537761da2c82bf816b34e6cf"), "name" : "jack", "age" : 50 }
{ "_id" : ObjectId("53777096d67d552056ab8916"), "name" : "小王", "age" : 24 }
{ "_id" : ObjectId("5377712cd67d84f62c65c4f6"), "name" : "小郭", "age" : 24 }
{ "_id" : ObjectId("53777230d67dfe576de5079a"), "name" : "小张", "password" : "xiaozhang", "age" : "23" }
{ "_id" : ObjectId("537772e9d67df098a26d79a6"), "age" : 24, "name" : "小李", "password" : "xiaozhang" }
9、更新对象
我们可以结合【mongodb shell命令】db.person.update({name:"小李"},{$set:{password:"hello"}})来理解Java是如何操作对象来更新的。{name:"小李"}是一个BasicDBObject,{$set:{password:"hello"}也是一个BasicDBObject,这样理解的话,你就会觉得mongodb shell命令操作和Java操作很相似。
public void testUpdate() { DBCollection table = db.getCollection("person"); BasicDBObject query = new BasicDBObject(); query.put("name", "小张"); BasicDBObject newDocument = new BasicDBObject(); newDocument.put("age", 23); BasicDBObject updateObj = new BasicDBObject(); updateObj.put("$set", newDocument); table.update(query, updateObj); } // 命令操作:db.person.update({name:"小李"},{$set:{password:"hello"}}) public void testUpdate2() { DBCollection table = db.getCollection("person"); BasicDBObject query = new BasicDBObject("name", "小张"); BasicDBObject newDocument = new BasicDBObject("age", 24); BasicDBObject updateObj = new BasicDBObject("$set", newDocument); table.update(query, updateObj); }
10、删除对象
可参考db.users.remove({name:"小李"})命令来理解Java操作对象
public void testDelete(){ DBCollection table = db.getCollection("person"); BasicDBObject query = new BasicDBObject("name", "小李"); table.remove(query); }
11、参考
Java + MongoDB Hello World Example(推荐)
12、你可能感兴趣
【MongoDB数据库】如何安装、配置MongoDB
【MongoDB数据库】MongoDB 命令入门初探

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

MySQL適合Web應用和內容管理系統,因其開源、高性能和易用性而受歡迎。 1)與PostgreSQL相比,MySQL在簡單查詢和高並發讀操作上表現更好。 2)相較Oracle,MySQL因開源和低成本更受中小企業青睞。 3)對比MicrosoftSQLServer,MySQL更適合跨平台應用。 4)與MongoDB不同,MySQL更適用於結構化數據和事務處理。

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

CentOS系統下MongoDB高效備份策略詳解本文將詳細介紹在CentOS系統上實施MongoDB備份的多種策略,以確保數據安全和業務連續性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數據庫名稱-o/備份目錄此命令會將指定數據庫的數據及元數據導出到指定的備份目錄。

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL在現實世界的應用包括基礎數據庫設計和復雜查詢優化。 1)基本用法:用於存儲和管理用戶數據,如插入、查詢、更新和刪除用戶信息。 2)高級用法:處理複雜業務邏輯,如電子商務平台的訂單和庫存管理。 3)性能優化:通過合理使用索引、分區表和查詢緩存來提升性能。

CentOS系統上GitLab數據庫部署指南選擇合適的數據庫是成功部署GitLab的關鍵步驟。 GitLab兼容多種數據庫,包括MySQL、PostgreSQL和MongoDB。本文將詳細介紹如何選擇並配置這些數據庫。數據庫選擇建議MySQL:一款廣泛應用的關係型數據庫管理系統(RDBMS),性能穩定,適用於大多數GitLab部署場景。 PostgreSQL:功能強大的開源RDBMS,支持複雜查詢和高級特性,適合處理大型數據集。 MongoDB:流行的NoSQL數據庫,擅長處理海

在Debian系統上為MongoDB數據庫加密,需要遵循以下步驟:第一步:安裝MongoDB首先,確保您的Debian系統已安裝MongoDB。如果沒有,請參考MongoDB官方文檔進行安裝:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/第二步:生成加密密鑰文件創建一個包含加密密鑰的文件,並設置正確的權限:ddif=/dev/urandomof=/etc/mongodb-keyfilebs=512
