亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

MongoDB一些概念

下面以MongoDB和MySql的對(duì)比來說明

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

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

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

MongoDB的CRUD

windows下安裝成功后,使用mongod命令啟動(dòng)服務(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ū)動(dòng)包后,測(cè)試代碼如下:

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;
/**
 * 測(cè)試mongodb 測(cè)試點(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ū)動(dòng)包的一個(gè)疑問

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

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

相關(guān)文章

  • Java與Unix時(shí)間戳的相互轉(zhuǎn)換詳解

    Java與Unix時(shí)間戳的相互轉(zhuǎn)換詳解

    這篇文章主要為大家詳細(xì)介紹了Java與Unix時(shí)間戳的相互轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java?輕松掌握字符緩沖流的使用

    Java?輕松掌握字符緩沖流的使用

    這篇文章主要介紹了Java的字符緩沖流用法,字符緩沖流的用途很多,主要是幾個(gè)構(gòu)造方法的使用,在項(xiàng)目開發(fā)中經(jīng)常會(huì)用到,需要的朋友參考下吧
    2022-04-04
  • 詳解Java SpringAOP切面類

    詳解Java SpringAOP切面類

    這篇文章主要為大家介紹了Java SpringAOP的切面類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Spring boot定時(shí)任務(wù)的原理及動(dòng)態(tài)創(chuàng)建詳解

    Spring boot定時(shí)任務(wù)的原理及動(dòng)態(tài)創(chuàng)建詳解

    這篇文章主要給大家介紹了關(guān)于Spring boot定時(shí)任務(wù)的原理及動(dòng)態(tài)創(chuàng)建的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring中@EnableScheduling注解的工作原理詳解

    Spring中@EnableScheduling注解的工作原理詳解

    這篇文章主要介紹了Spring中@EnableScheduling注解的工作原理詳解,@EnableScheduling是 Spring Framework 提供的一個(gè)注解,用于啟用Spring的定時(shí)任務(wù)(Scheduling)功能,需要的朋友可以參考下
    2024-01-01
  • Java中的對(duì)象流總結(jié)(必看篇)

    Java中的對(duì)象流總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄狫ava中的對(duì)象流總結(jié)(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • MybatisPlus 不修改全局策略和字段注解如何將字段更新為null

    MybatisPlus 不修改全局策略和字段注解如何將字段更新為null

    這篇文章主要介紹了MybatisPlus 不修改全局策略和字段注解如何將字段更新為null,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Spring框架事務(wù)屬性中事務(wù)隔離級(jí)別與傳播行為全面講解

    Spring框架事務(wù)屬性中事務(wù)隔離級(jí)別與傳播行為全面講解

    這篇文章主要介紹了Spring框架聲明式事務(wù)的事務(wù)隔離級(jí)別和事務(wù)傳播行為,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • Android中Socket通信的實(shí)現(xiàn)方法概述

    Android中Socket通信的實(shí)現(xiàn)方法概述

    這篇文章主要介紹了Android中Socket通信的實(shí)現(xiàn)方法,很有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-08-08
  • 一文詳解Spring的Enablexxx注解使用實(shí)例

    一文詳解Spring的Enablexxx注解使用實(shí)例

    這篇文章主要為大家介紹了一文詳解Spring的Enablexxx注解使用實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論