1. 程式人生 > >Java中使用MongoDB詳解

Java中使用MongoDB詳解

環境配置

在 Java 程式中如果要使用 MongoDB,你需要確保已經安裝了 Java 環境及 MongoDB JDBC 驅動。

本章節例項時候 Mongo 3.x 以上版本。

你可以參考本站的Java教程來安裝Java程式。現在讓我們來檢測你是否安裝了 MongoDB JDBC 驅動。

連線資料庫

連線資料庫,你需要指定資料庫名稱,如果指定的資料庫不存在,mongo會自動建立資料庫。

連線資料庫的Java程式碼如下:

import com.mongodb.MongoClient;import com.mongodb.client.MongoDatabase
;publicclassMongoDBJDBC{publicstaticvoid main(String args[]){try{// 連線到 mongodb 服務MongoClient mongoClient =newMongoClient("localhost",27017);// 連線到資料庫MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");System.out.println("Connect to database successfully");}catch(Exception e){System.err.println
( e.getClass().getName()+": "+ e.getMessage());}}}

現在,讓我們來編譯執行程式並連線到資料庫 mycol。

你可以根據你的實際環境改變 MongoDB JDBC 驅動的路徑。

本例項將 MongoDB JDBC 啟動包 mongo-java-driver-3.2.2.jar 放在本地目錄下:

$ javac -cp .:mongo-java-driver-3.2.2.jarMongoDBJDBC.java
$ java -cp .:mongo-java-driver-3.2.2.jarMongoDBJDBCConnect to database successfully
Authentication:true

本例項中 Mongo 資料庫無需使用者名稱密碼驗證。如果你的 Mongo 需要驗證使用者名稱及密碼,可以使用以下程式碼:

import java.util.ArrayList;import java.util.List;import com.mongodb.MongoClient;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;import com.mongodb.client.MongoDatabase;publicclassMongoDBJDBC{publicstaticvoid main(String[] args){try{//連線到MongoDB服務 如果是遠端連線可以替換“localhost”為伺服器所在IP地址  //ServerAddress()兩個引數分別為 伺服器地址 和 埠  ServerAddress serverAddress =newServerAddress("localhost",27017);List<ServerAddress> addrs =newArrayList<ServerAddress>();  
            addrs.add(serverAddress);//MongoCredential.createScramSha1Credential()三個引數分別為 使用者名稱 資料庫名稱 密碼  MongoCredential credential =MongoCredential.createScramSha1Credential("username","databaseName","password".toCharArray());List<MongoCredential> credentials =newArrayList<MongoCredential>();  
            credentials.add(credential);//通過連線認證獲取MongoDB連線  MongoClient mongoClient =newMongoClient(addrs,credentials);//連線到資料庫  MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");System.out.println("Connect to database successfully");}catch(Exception e){System.err.println( e.getClass().getName()+": "+ e.getMessage());}}}

建立集合

我們可以使用 com.mongodb.client.MongoDatabase 類中的createCollection()來建立集合

程式碼片段如下:

import com.mongodb.MongoClient;import com.mongodb.client.MongoDatabase;publicclassMongoDBJDBC{publicstaticvoid main(String args[]){try{// 連線到 mongodb 服務MongoClient mongoClient =newMongoClient("localhost",27017);// 連線到資料庫MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");System.out.println("Connect to database successfully");
      mongoDatabase.createCollection("test");System.out.println("集合建立成功");}catch(Exception e){System.err.println( e.getClass().getName()+": "+ e.getMessage());}}}

編譯執行以上程式,輸出結果如下:

Connect to database successfully
集合建立成功

獲取集合

我們可以使用com.mongodb.client.MongoDatabase類的 getCollection() 方法來獲取一個集合

程式碼片段如下:

import org.bson.Document;import com.mongodb.MongoClient;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoDatabase;publicclassMongoDBJDBC{publicstaticvoid main(String args[]){try{// 連線到 mongodb 服務MongoClient mongoClient =newMongoClient("localhost",27017);// 連線到資料庫MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");System.out.println("Connect to database successfully");MongoCollection<Document> collection = mongoDatabase.getCollection("test");System.out.println("集合 test 選擇成功");}catch(Exception e){System.err.println( e.getClass().getName()+": "+ e.getMessage());}}}

編譯執行以上程式,輸出結果如下:

Connect to database successfully
集合 test 選擇成功

插入文件

我們可以使用com.mongodb.client.MongoCollection類的 insertMany() 方法來插入一個文件

程式碼片段如下:

import java.util.ArrayList;import java.util.List;import org.bson.Document;import com.mongodb.MongoClient;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoDatabase;publicclassMongoDBJDBC{publicstaticvoid
            
           

相關推薦

javastatic

static關鍵字 1.static修飾的變數叫做“靜態變數”。 2.static修飾的方法叫做“靜態方法”。 3.static還可以定義靜態語句塊。 一下例子演示:static定義靜態語句塊 static定義的靜態語句塊在類載入的階段執行,並且只執行一次,並且是自上而下的順序執行。 p

javaimport

前言 import與package機制相關,這裡先從package入手,再講述import以及static import的作用。 package package名稱就像是我們的姓,而class名稱就像是我們的名字 。package和package的附屬關係用”.”來連線,這就像是複姓。比如說 java.

javavolatile

1.1 作用:它用來確保將變數的更新操作通知到其他執行緒。 volatile可以保證執行緒可見性且提供了一定的有序性,但是無法保證原子性。 1.保證可見性、不保證原子性 2.禁止指令重排序 可見性的實現: (1)修改volatile變數時會強制將修改後的值重新整

JavaCAS

在JDK 5之前Java語言是靠synchronized關鍵字保證同步的,這會導致有鎖 鎖機制存在以下問題: (1)在多執行緒競爭下,加鎖、釋放鎖會導致比較多的上下文切換和排程延時,引起效能問題。 (2)一個執行緒持有鎖會導致其它所有需要此鎖的執行緒掛起。 (3

JavaCAS(悲觀鎖與樂觀鎖)

前言:在JDK1.5之前Java語言是靠synchronized關鍵字保證同步的,這會導致有鎖鎖機制存在以下問題: (1)在多執行緒競爭下,加鎖、釋放鎖會導致比較多的上下文切換和排程延時,引起效能問題。 (2)一個執行緒持有鎖會導致其它所有需要此鎖的執行緒掛

javaHashMap

上面方法的程式碼很簡單,但其中包含了一個非常優雅的設計:系統總是將新新增的 Entry 物件放入 table 陣列的 bucketIndex 索引處——如果 bucketIndex 索引處已經有了一個 Entry 物件,那新新增的 Entry 物件指向原有的 Entry 物件(產生一個 Entry 鏈),如果

中科院中文分詞在java呼叫(ICTCLAS2013版)

在中文分詞的時候,現在流行的有很多,下面主要介紹中科院中文分詞,現在中科院地址是http://ictclas.nlpir.org/ 首先也是開始呼叫這個介面,呼叫成功後覺得應該共享出來,讓更多人去使用。 然後主要是介紹一下怎麼用使用漢語分詞系統怎麼去呼叫。必須先在上面那個網

Java基礎之五】JavaIO

1.Java IO簡介 可能學過計算機組裝與維修的同學都知道I/O裝置,翻譯過來也就是Input/Output(輸入輸出裝置),在硬體中鍵盤、滑鼠 屬於 輸入裝置,顯示器、印表機等屬於輸出裝置,這裡輸入輸出參考物是計算機本身。 java.io包從巨集觀上來

JavaCAS,分析的通俗易懂

在JDK 5之前Java語言是靠synchronized關鍵字保證同步的,這會導致有鎖 鎖機制存在以下問題: (1)在多執行緒競爭下,加鎖、釋放鎖會導致比較多的上下文切換和排程延時,引起效能問題。 (2)一個執行緒持有鎖會導致其它所有需要此鎖的執行緒掛起。 (3)如果

Javainstanceof

java 中的instanceof 運算子是用來在執行時指出物件是否是特定類的一個例項。instanceof通過返回一個布林值來指出,這個物件是否是這個特定類或者是它的子類的一個例項。 用法: result = obj

JAVA異常

image scanner 執行c 地方 nbsp point 情況 ktr == Throwable類:是Java中所有錯誤和異常的父類 Throwable類有兩個子類:一個是錯誤類 Error 一個是異常類 Exception 錯誤是指:類似虛擬機斷電,電

Java使用MongoDB

環境配置 在 Java 程式中如果要使用 MongoDB,你需要確保已經安裝了 Java 環境及 MongoDB JDBC 驅動。 本章節例項時候 Mongo 3.x 以上版本。 你可以參考本站的Java教程來安裝Java程式。現在讓我們來檢測你是否

java每次面試的問題整理,java篇()

Java集合框架是什麼,集合框架優點! 最初的java版本包含幾個集合類,Vector,Stack,HashTable,和Array. Java1.2提出了囊括所有集合的介面,實現和演算法的集合框架。集合框架的部分優點↓ 1,實現核心集合類降低開發成本.並非實現我們自己的集合類,

JNI呼叫JAVA各種方法

總結一下 C 如何 通過 JNI 層呼叫 Java 的靜態和非靜態方法 對於:JNIEXPORT void JNICALL Java_com_example_TestNative_sayHello(JNIEnv * env, jobject th

Java面試題】之Object類方法

之前看到有人分享的面經,面試官先問Object中有什麼方法,然後再要求解釋每一次方法的作用。 先看看Object中有什麼方法 Object類是Java中所有類的基類。位於java.lang包中,一共有13個方法 方法一 Object() 即Object的構造方法 大

java.util包(二)——Connection接口

操作 相同 元素 叠代 cat roo soft true nbsp Connection接口介紹   Connection接口是java集合的root接口,沒有實現類,只有子接口和實現子接口的各種容器。主要用來表示java集合這一大的抽象概念。   Connection接

java對象

add splay view created 元素 繼承關系 外部 優化 csdn java對象詳解 內存布局 普通對象布局 數組的內存布局 內部類的內存布局 對象分解 對象頭-mark word(8字節) 實例數據 對齊填充(可選) java鎖分析

Java泛型

對象數組 整形 泛型方法 tty 接受 一個 div -m color 泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。 假定我們有這樣一個需求:寫一個排序方法,能夠對整形數組、字符串數組甚至其他任何類型的數組進行排序,該如何實現? 答案是可以使用 Ja

JSJSON

名稱 完全 rip json詳解 core 兼容 json字符串 之間 org JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,采用完全獨立於語言的文本格式,是理想的數據交換格式。同時,JSON是 JavaScript 原生格式

nodeJsnpm

commonjs -s license mon sem console 能力 效應 模塊安裝 npm 是 Node.js 的模塊依賴管理工具。作為開發者使用的工具,主要解決開發 node.js 時會遇到的問題。如同 RubyGems 對於 Ruby 開發者和 Maven 對