国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

簡單學習Java+MongoDB

2019-11-26 14:28:18
字體:
供稿:網(wǎng)友

MongoDB一些概念

下面以MongoDB和MySql的對比來說明

MySQL MongoDB
database(數(shù)據(jù)庫) db(數(shù)據(jù)庫)
table(表) collection(集合)
row(行記錄) document(文檔)
column(列) field(字段)
primary key(指定主鍵) "_id" : ObjectId("******")  自動生成內(nèi)置主鍵

Mysql的數(shù)據(jù)形式如下

同樣的數(shù)據(jù)在MongoDB下類似于JSON鍵值對,叫BSON,如下

MongoDB的CRUD

windows下安裝成功后,使用mongod命令啟動服務,使用mongo命令默認連接到test庫

1,創(chuàng)建集合

創(chuàng)建user集合:db.createCollection("user")   //不需要定義字段
2,插入
插入name=wangxu,age=27的記錄:db.user.insert({"name":"wangxu","age":27})
3,查詢
查詢?nèi)浚篸b.user.find()
查詢name=wangxu的記錄:db.user.find({"name":"wangxu"})
4,更新
將name=wangxu的記錄age更新成30:db.user.update({name:"wangxu"},{"$set":{"age":30}})
5,刪除
刪除name=wangxu的記錄:db.user.remove({"name":"wangxu"})
刪除全部:db.user.remove()
6,刪除集合
刪除user集合: db.user.drop()

Java調(diào)用MongoDB

引入MongoDB的Java驅(qū)動包后,測試代碼如下:

package com.wx.test;import java.util.ArrayList;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.model.Filters;/** * 測試mongodb 測試點:增加,查詢,更新,刪除 *  * @author wangxu * @date 2016-3-27 */public class TestMongoDB { public static void main(String[] args) { // 建立連接,MongoDB默認是沒有用戶名及密碼 MongoClient mongoClient = new MongoClient("localhost", 27017); // 獲取test庫 MongoDatabase db = mongoClient.getDatabase("test"); // 創(chuàng)建集合 db.createCollection("user"); // 獲取集合 MongoCollection collection = db.getCollection("user"); // 插入文檔(支持多條) Document document = new Document("name", "wangxu").append("age", "27"); Document document2 = new Document("name", "wangxu_java").append("age",  "27"); List<Document> documents = new ArrayList<>(); documents.add(document); documents.add(document2); collection.insertMany(documents); // 更新wangxu的age為30 collection.updateMany(Filters.eq("name", "wangxu"), new Document(  "$set", new Document("age", 30))); // 查詢文檔 FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); // 遍歷游標 while (mongoCursor.hasNext()) {  Document doc = mongoCursor.next();  System.out.println("name=" + doc.get("name")); } // 刪除wangxu_java collection.deleteMany(Filters.eq("name", "wangxu_java")); }}

關(guān)于Java驅(qū)動包的一個疑問

MongoClient mongoClient = new MongoClient("域不存在", 27017); //建立連接

當我保存上面的代碼時,發(fā)現(xiàn)不需要處理異常,開始我以為異常被設(shè)計成了“非檢查異常”,運行時會拋出來,最后測試發(fā)現(xiàn)根本不會拋任何異常,后續(xù)的CRUD操作時會拋異常,但幾乎都是非檢查異常,個人感覺這種設(shè)計是不是有點不符合Java的異常分類機制?

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平顶山市| 蒙山县| 神池县| 泽州县| 延津县| 桓仁| 弥渡县| 崇阳县| 津市市| 浙江省| 元江| 垦利县| 碌曲县| 泗阳县| 烟台市| 池州市| 固始县| 三台县| 嘉黎县| 合水县| 兰州市| 延寿县| 凌源市| 壶关县| 神农架林区| 昔阳县| 广河县| 南安市| 长子县| 峨眉山市| 鹰潭市| 湟中县| 石台县| 义马市| 北川| 徐水县| 容城县| 香格里拉县| 南川市| 绍兴市| 阿瓦提县|