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 successfullyAuthentication: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相關推薦
java中static詳解
static關鍵字 1.static修飾的變數叫做“靜態變數”。 2.static修飾的方法叫做“靜態方法”。 3.static還可以定義靜態語句塊。 一下例子演示:static定義靜態語句塊 static定義的靜態語句塊在類載入的階段執行,並且只執行一次,並且是自上而下的順序執行。 p
java中import詳解
前言 import與package機制相關,這裡先從package入手,再講述import以及static import的作用。 package package名稱就像是我們的姓,而class名稱就像是我們的名字 。package和package的附屬關係用”.”來連線,這就像是複姓。比如說 java.
java中volatile詳解
1.1 作用:它用來確保將變數的更新操作通知到其他執行緒。 volatile可以保證執行緒可見性且提供了一定的有序性,但是無法保證原子性。 1.保證可見性、不保證原子性 2.禁止指令重排序 可見性的實現: (1)修改volatile變數時會強制將修改後的值重新整
Java中CAS詳解
在JDK 5之前Java語言是靠synchronized關鍵字保證同步的,這會導致有鎖 鎖機制存在以下問題: (1)在多執行緒競爭下,加鎖、釋放鎖會導致比較多的上下文切換和排程延時,引起效能問題。 (2)一個執行緒持有鎖會導致其它所有需要此鎖的執行緒掛起。 (3
Java中CAS詳解(悲觀鎖與樂觀鎖)
前言:在JDK1.5之前Java語言是靠synchronized關鍵字保證同步的,這會導致有鎖鎖機制存在以下問題: (1)在多執行緒競爭下,加鎖、釋放鎖會導致比較多的上下文切換和排程延時,引起效能問題。 (2)一個執行緒持有鎖會導致其它所有需要此鎖的執行緒掛
java中HashMap詳解
上面方法的程式碼很簡單,但其中包含了一個非常優雅的設計:系統總是將新新增的 Entry 物件放入 table 陣列的 bucketIndex 索引處——如果 bucketIndex 索引處已經有了一個 Entry 物件,那新新增的 Entry 物件指向原有的 Entry 物件(產生一個 Entry 鏈),如果
中科院中文分詞在java中呼叫詳解(ICTCLAS2013版)
在中文分詞的時候,現在流行的有很多,下面主要介紹中科院中文分詞,現在中科院地址是http://ictclas.nlpir.org/ 首先也是開始呼叫這個介面,呼叫成功後覺得應該共享出來,讓更多人去使用。 然後主要是介紹一下怎麼用使用漢語分詞系統怎麼去呼叫。必須先在上面那個網
【Java基礎之五】Java中IO詳解
1.Java IO簡介 可能學過計算機組裝與維修的同學都知道I/O裝置,翻譯過來也就是Input/Output(輸入輸出裝置),在硬體中鍵盤、滑鼠 屬於 輸入裝置,顯示器、印表機等屬於輸出裝置,這裡輸入輸出參考物是計算機本身。 java.io包從巨集觀上來
Java中CAS詳解,分析的通俗易懂
在JDK 5之前Java語言是靠synchronized關鍵字保證同步的,這會導致有鎖 鎖機制存在以下問題: (1)在多執行緒競爭下,加鎖、釋放鎖會導致比較多的上下文切換和排程延時,引起效能問題。 (2)一個執行緒持有鎖會導致其它所有需要此鎖的執行緒掛起。 (3)如果
Java中instanceof詳解
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
JS中JSON詳解
名稱 完全 rip json詳解 core 兼容 json字符串 之間 org JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,采用完全獨立於語言的文本格式,是理想的數據交換格式。同時,JSON是 JavaScript 原生格式
nodeJs中npm詳解
commonjs -s license mon sem console 能力 效應 模塊安裝 npm 是 Node.js 的模塊依賴管理工具。作為開發者使用的工具,主要解決開發 node.js 時會遇到的問題。如同 RubyGems 對於 Ruby 開發者和 Maven 對