最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單學(xué)習(xí)Java+MongoDB

 更新時間:2016年03月29日 08:51:34   投稿:hebedich  
本文給大家介紹的是如何簡單的使用java+MongoDB實(shí)現(xiàn)數(shù)據(jù)調(diào)用的問題,非常的實(shí)用,有需要的小伙伴可以參考下

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命令啟動服務(wù),使用mongo命令默認(rèn)連接到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 測試點(diǎn):增加,查詢,更新,刪除
 * 
 * @author wangxu
 * @date 2016-3-27
 */
public class TestMongoDB {
 public static void main(String[] args) {
 // 建立連接,MongoDB默認(rèn)是沒有用戶名及密碼
 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();
 // 遍歷游標(biāo)
 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); //建立連接

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

相關(guān)文章

最新評論

延庆县| 武山县| 丹凤县| 海兴县| 搜索| 深泽县| 囊谦县| 毕节市| 越西县| 青州市| 宝应县| 武邑县| 海淀区| 县级市| 莱阳市| 新竹县| 博罗县| 康保县| 沐川县| 普兰店市| 乌兰县| 义马市| 洛浦县| 吐鲁番市| 驻马店市| 潞城市| 沈丘县| 荃湾区| 凤冈县| 宁河县| 商水县| 陇川县| 大同市| 芜湖县| 康定县| 城步| 乌拉特后旗| 会昌县| 合山市| 中阳县| 巴彦县|