『壹』 使用MongoDB的java項目使用哪種框架比較好
spring boot;
spring集成了很多主流的東西,操作起來非常簡單
『貳』 怎樣使用mongodb與java框架整合
hibernate好像還不能持久化對象到mongoDB中吧,不過可以使用其他框架替代hibernate。 目前我知道的有兩種,1,如果你的jdk是1.6以上spring是3.0以上可以使用spring data項目中的mongodb部分來實現。2.如果不符合以上要求可以用morphia,也很不錯...
『叄』 學習Java應該了解的大數據和框架
很多人都在知道,計算機行業的發展是非常迅速的,軟體開發人員想要跟上時代的發展,最重要的就是不斷挑戰自己。在學習軟體開發的過程,前期學習的知識是遠遠不夠的,需要了解更多的知識,並且挑戰更多的復雜性。
現在學習Java語言不能忽略工具和框架的使用,工具和框架的構建越來越復雜。很多人不知道學習工具和框架有什麼用?下面昆明電腦培訓為大傢具體了解Java開發應該了解的大數據工具和框架。
一、MongoDB
這是一種最受歡迎的,跨平台的,面向文檔的資料庫。
MongoDB的核心優勢是靈活的文檔模型,高可用性復制集和可擴展的碎片集群。雲南java培訓建議可以嘗試以多種方式了解MongoDB,例如MongoDB工具的實時監控,內存使用和頁面錯誤,連接,資料庫操作,復制集等。
二、Elasticsearch
主要是能夠為雲構建的分布式RESTful搜索引擎。
Elasticsearch主要是使用在Lucene之中的伺服器,能夠進行分布式多用戶能力的全文搜索引擎,並且還是使用在Java的開發中,這是現在很多企業中使用最流行的搜索引擎。ElasticSearch不僅是一個全文搜索引擎,而且是一個分布式實時文檔存儲,每個欄位都能夠被索引並且可以被搜索。它也是一個具有實時分析功能的分布式搜索引擎,java課程發現它還可以擴展到數百個伺服器存儲和處理數PB的數據。
三、Cassandra
這是一個開源的分布式資料庫管理系統,最初由Facebook開發,用於處理許多商用伺服器上的大量數據,提供高可用性而無單點故障。
ApacheCassandra是一套開源分布式NoSQL資料庫系統。集GoogleBigTable的數據模型與AmazonDynamo的完全分布式架構於一身。於2008開源,此後,由於Cassandra良好的可擴展性,被Digg、Twitter等Web2.0網站所採納,成為了一種流行的分布式結構化數據存儲方案。
四、Redis
開源(BSD許可證)內存數據結構存儲,用作資料庫,緩存和消息代理。
Redis是一個開源的,基於日誌的Key-Value資料庫,用ANSIC編寫,支持網路,可以基於內存持久化,並提供多種語言的API。Redis有三個主要功能,雲南IT培訓認為可以將它與許多其他競爭對手區分開來:Redis是一個將數據完全存儲在內存中的資料庫,僅使用磁碟用於持久性目的。
『肆』 學習Java應該了解的大數據和框架
很多人都在知道,計算機行業的發展是非常迅速的,軟體開發人員想要跟上時代的發展,最重要的就是不斷挑戰自己。在學習軟體開發的過程,前期學習的知識是遠遠不夠的,需要了解更多的知識,並且挑戰更多的復雜性。
現在學習Java語言不能忽略工具和框架的使用,工具和框架的構建越來越復雜。很多人不知道學習工具和框架有什麼用?下面昆明電腦培訓為大傢具體了解Java開發應該了解的大數據工具和框架。
一、MongoDB
這是一種最受歡迎的,跨平台的,面向文檔的資料庫。
MongoDB的核心優勢是靈活的文檔模型,高可用性復制集和可擴展的碎片集群。雲南java培訓建議可以嘗試以多種方式了解MongoDB,例如MongoDB工具的實時監控,內存使用和頁面錯誤,連接,資料庫操作,復制集等。
二、Elasticsearch
主要是能夠為雲構建的分布式RESTful搜索引擎。
Elasticsearch 主要是使用在Lucene之中的伺服器,能夠進行分布式多用戶能力的全文搜索引擎,並且還是使用在Java的開發中,這是現在很多企業中使用最流行的搜索引擎。ElasticSearch不僅是一個全文搜索引擎,而且是一個分布式實時文檔存儲,每個欄位都能夠被索引並且可以被搜索。它也是一個具有實時分析功能的分布式搜索引擎,java課程發現它還可以擴展到數百個伺服器存儲和處理數PB的數據。
三、Cassandra
這是一個開源的分布式資料庫管理系統,最初由Facebook開發,用於處理許多商用伺服器上的大量數據,提供高可用性而無單點故障。
Apache Cassandra是一套開源分布式NoSQL資料庫系統。集Google BigTable的數據模型與Amazon Dynamo的完全分布式架構於一身。於2008開源,此後,由於Cassandra良好的可擴展性,被Digg、Twitter等Web 2.0網站所採納,成為了一種流行的分布式結構化數據存儲方案。
四、Redis
開源(BSD許可證)內存數據結構存儲,用作資料庫,緩存和消息代理。
Redis是一個開源的,基於日誌的Key-Value資料庫,用ANSI C編寫,支持網路,可以基於內存持久化,並提供多種語言的API。 Redis有三個主要功能,雲南IT培訓認為可以將它與許多其他競爭對手區分開來:Redis是一個將數據完全存儲在內存中的資料庫,僅使用磁碟用於持久性目的。
『伍』 mongoDB在 java中的事務怎麼實現
MongoDB自身是不提供事務處理的。如果要實現事務操作,必須自己寫實現代碼。
在為你的項目選定資料庫的時候,要根據你的項目來量身選擇。如果需要強事務操作的和數據一致性很高的地方,最好選擇健壯的關系行資料庫。
如果對事務處理要求不高,而對數據存取要求很高的,則選擇非關系型資料庫。
『陸』 java+mongodb的正確使用方法!
package maven.demo.test;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.QueryOperators;
public class MongoDB {
private static void print(String str){
System.out.println(str);
}
public static void main(String[] args) {
try {
//創建連接
Mongo m=new Mongo("127.0.0.1", 27017);
//得到資料庫
DB db=m.getDB("sun");
//得到所有資料庫
// List<String> colls=m.getDatabaseNames();
// for(String str:colls){
// System.out.println(str);
// }
// //得到所有的集合(表)
// for(String collection:db.getCollectionNames()){
// System.out.println(collection);
// }
//刪除一個資料庫
//m.dropDatabase("sun");
//得到sun表
DBCollection coll=db.getCollection("stu");
//查看一個表的索引
// for(DBObject index:coll.getIndexInfo()){
// System.out.println(index);
// }
// DBObject myDoc=coll.findOne();
// System.out.println(myDoc);
//添加
// BasicDBObject doc=new BasicDBObject();
// doc.put("name", "sunshan");
// doc.put("sex", "男");
// doc.put("age", 22);
//coll.insert(doc);
//刪除
//coll.remove(doc);
// BasicDBObject doc1=new BasicDBObject();
// doc1.put("i", 0);
// doc1.put("j", "foo");
// BasicDBObject doc2=new BasicDBObject();
// doc2.put("hello", "world");
// doc1.put("doc2", doc2);
// coll.insert(doc1);
//修改
// BasicDBObject doc3=new BasicDBObject();
// doc3.put("x", 6);
// BasicDBObject doc4=new BasicDBObject();
// doc4.put("x", 1);
// coll.update(doc3, doc4,true,false);
//如果資料庫不存在就添加 |多條修改 false只修改第一天,true如果有多條就不修改
//條件查詢
//System.out.println(coll.find(doc4));
//coll.findAndRemove(doc4);
// //批量插入
// List<DBObject> datas=new ArrayList<DBObject>();
// for(int i=0;i<10;i++){
// BasicDBObject bd=new BasicDBObject();
// bd.put("name", "data");
// bd.append("age", i);
// datas.add(bd);
// }
// coll.insert(datas);
//添加
// BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start();
// documentBuilder.add("database", "mkyongDB");
// documentBuilder.add("table", "hosting");
// BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start();
// documentBuilderDetail.add("records", "99");
// documentBuilderDetail.add("index", "vps_index1");
// documentBuilderDetail.add("active", "true");
// documentBuilder.add("detail", documentBuilderDetail.get());
// coll.insert(documentBuilder.get());
//添加
// Map<Object,Object> map=new HashMap<Object,Object>();
// map.put("a", 1);
// map.put("b", "b");
// coll.insert(new BasicDBObject(map));
//添加
// String json ="{'1' : '1','2' : '2',"+"'11' : {'1' : 1, '2' : '2', '3' : '3'}}";
// DBObject dbobject=(DBObject)JSON.parse(json);
// coll.insert(dbobject);
//更新
// BasicDBObject bdo=new BasicDBObject();
// bdo.put("x", 11);
// coll.update(new BasicDBObject().append("x", 0), bdo);
//更新
// BasicDBObject bdo=new BasicDBObject().append("$inc", new BasicDBObject().append("x", 12));
// coll.update(new BasicDBObject().append("x", 11), bdo);
//更新
//如果不使用$set 直接是 age則所有的都會更新
//根據age為9條件把name:data修改為 name:sun
// BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("name", "sunshan"));
// coll.update(new BasicDBObject().append("age", 9), bdo);
//更新
//根據name為data條件把age:批量修改為 age:age
// BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("age", "age"));
// coll.update(new BasicDBObject().append("name", "data"), bdo,false, true);
//查詢age=1
// print("find:"+coll.find(new BasicDBObject("age", 1)).toArray());
//查詢age<=1
// print("find: "+coll.find(new BasicDBObject("age", new BasicDBObject("$lte", 1))).toArray());
//查詢age>=1
// print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject("$gte", 1))).toArray());
//查詢age!=1
// print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject("$ne", 1))).toArray());
//查詢age=1,2,3
// print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN ,new int[]{1,2,3}))).toArray());
//查詢age!=1,2,3
// print("find: "+coll.find(new BasicDBObject("age" ,new BasicDBObject(QueryOperators.NIN ,new int[]{1,2,3}))).toArray());
// print("find: "+coll.find(new BasicDBObject("age" ,new BasicDBObject(QueryOperators.EXISTS ,true))).toArray());
//查詢age屬性
// print("find: "+coll.find(null ,new BasicDBObject("age" ,true)).toArray());
// List<DBObject> list=coll.find().toArray();
// for(Object obj:list){
// System.out.println(obj);
// }
// DBObject dbc=new BasicDBObject();
// dbc.put("name", 1111);
// List<DBObject> list=new ArrayList<DBObject>();
// list.add(dbc);
// System.out.println(coll.insert(list).getN());
// //查詢部分數據塊
// DBCursor cursor=coll.find().skip(1);
// while(cursor.hasNext()){
// System.out.println(cursor.next());
// }
// DBCursor cur=coll.find(); //DBCursor cur=coll.find().limit(2);
// while(cur.hasNext()){
// System.out.println(cur.next());
// }
//System.out.println(cur.getCursorId()+" "+cur.count()+" "+JSON.serialize(cur));
//條件查詢
BasicDBObject doc5=new BasicDBObject();
doc5.put("$gt", 1);
doc5.put("$lt", 3);
print("find 21<y<23:"+coll.find(new BasicDBObject("y", doc5)).toArray());
// BasicDBObject doc5=new BasicDBObject();
// doc5.put("$gt", 1);
// doc5.put("$lt", 3);
// BasicDBObject doc6=new BasicDBObject();
// doc6.put("x", doc5);
// System.out.println(coll.find(doc6));
} catch (Exception e) {
e.printStackTrace();
}
}
}
『柒』 如何用Java操作MongoDB
HelloWorld程序
學習任何程序的第一步,都是編寫HelloWorld程序,我們也不例外,看下如何通過Java編寫一個HelloWorld的程序。
首先,要通過Java操作Mongodb,必須先下載Mongodb的Java驅動程序,可以在這里下載。
新建立一個Java工程,將下載的驅動程序放在庫文件路徑下,程序代碼如下:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importcom.mongodb.BasicDBObject;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
/**
*Java+MongoDBHelloworldExample
*
*/
publicclassApp{
publicstaticvoidmain(String[]args){
try{
//實例化Mongo對象,連接27017埠
Mongomongo=newMongo("localhost",27017);
//連接名為yourdb的資料庫,假如資料庫不存在的話,mongodb會自動建立
DBdb=mongo.getDB("yourdb");
//GetcollectionfromMongoDB,databasenamed"yourDB"
//從Mongodb中獲得名為yourColleection的數據集合,如果該數據集合不存在,Mongodb會為其新建立
DBCollectioncollection=db.getCollection("yourCollection");
//使用BasicDBObject對象創建一個mongodb的document,並給予賦值。
BasicDBObjectdocument=newBasicDBObject();
document.put("id",1001);
document.put("msg","helloworldmongoDBinJava");
//將新建立的document保存到collection中去
collection.insert(document);
//創建要查詢的document
BasicDBObjectsearchQuery=newBasicDBObject();
searchQuery.put("id",1001);
//使用collection的find方法查找document
DBCursorcursor=collection.find(searchQuery);
//循環輸出結果
while(cursor.hasNext()){
System.out.println(cursor.next());
}
System.out.println("Done");
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}
}
}
最後,輸出的結果為:
{"_id":{"$oid":"4dbe5596dceace565d229dc3"},
"id":1001,"msg":"helloworldmongoDBinJava"}
Done
在上面的例子中,演示了使用Java對Mongodb操作的重要方法和步驟,首先通過創建Mongodb對象,傳入構造函數的參數是Mongodb的資料庫所在地址和埠,然後使用
getDB方法獲得要連接的資料庫名,使用getCollection獲得數據集合的名,然後通過新建立BasicDBObject對象去建立document,最後通過collection的insert方法,將建立的document保存到資料庫中去。而collection的find方法,則是用來在資料庫中查找document。
從Mongodb中獲得collection數據集
在Mongodb中,可以通過如下方法獲得資料庫中的collection:
DBCollectioncollection=db.getCollection("yourCollection");
如果你不知道collection的名稱,可以使用db.getCollectionNames()獲得集合,然後再遍歷,如下:
DBdb=mongo.getDB("yourdb");
Setcollections=db.getCollectionNames();
for(StringcollectionName:collections){
System.out.println(collectionName);
}
完成的一個例子如下:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importjava.util.Set;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
/**
*Java:GetcollectionfromMongoDB
*
*/
publicclassGetCollectionApp{
publicstaticvoidmain(String[]args){
try{
Mongomongo=newMongo("localhost",27017);
DBdb=mongo.getDB("yourdb");
Set<String>collections=db.getCollectionNames();
for(StringcollectionName:collections){
System.out.println(collectionName);
}
DBCollectioncollection=db.getCollection("yourCollection");
System.out.println(collection.toString());
System.out.println("Done");
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}
}
}
Mongodb中如何插入數據
下面,講解下如何使用4種方式,將JSON數據插入到Mongodb中去。首先我們准備JSON
格式的數據,如下:
{
"database":"mkyongDB",
"table":"hosting",
"detail":
{
records:99,
index:"vps_index1",
active:"true"
}
}
}
我們希望用不同的方式,通過JAVA代碼向Mongodb插入以上格式的JSON數據
第一種方法,是使用BasicDBObject,方法如下代碼所示:
BasicDBObjectdocument=newBasicDBObject();
document.put("database","mkyongDB");
document.put("table","hosting");
BasicDBObjectdocumentDetail=newBasicDBObject();
documentDetail.put("records","99");
documentDetail.put("index","vps_index1");
documentDetail.put("active","true");
document.put("detail",documentDetail);
collection.insert(document);
第二種方法是使用BasicDBObjectBuilder對象,如下代碼所示:
=BasicDBObjectBuilder.start()
.add("database","mkyongDB")
.add("table","hosting");
Detail=BasicDBObjectBuilder.start()
.add("records","99")
.add("index","vps_index1")
.add("active","true");
documentBuilder.add("detail",documentBuilderDetail.get());
collection.insert(documentBuilder.get());
第三種方法是使用Map對象,代碼如下:
MapdocumentMap=newHashMap();
documentMap.put("database","mkyongDB");
documentMap.put("table","hosting");
MapdocumentMapDetail=newHashMap();
documentMapDetail.put("records","99");
documentMapDetail.put("index","vps_index1");
documentMapDetail.put("active","true");
documentMap.put("detail",documentMapDetail);
collection.insert(newBasicDBObject(documentMap));
第四種方法,也就是最簡單的,即直接插入JSON格式數據
String json="{'database' : 'mkyongDB','table' : 'hosting',"+
"'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";
DBObject dbObject=(DBObject)JSON.parse(json);
collection.insert(dbObject);
這里使用了JSON的parse方法,將解析後的JSON字元串轉變為DBObject對象後再直接插入到collection中去。
完整的代碼如下所示:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importjava.util.HashMap;
importjava.util.Map;
importcom.mongodb.BasicDBObject;
importcom.mongodb.BasicDBObjectBuilder;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.DBObject;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
importcom.mongodb.util.JSON;
/**
* Java MongoDB : Insert a Document
*
*/
publicclass InsertDocumentApp {
publicstaticvoid main(String[] args){
try{
Mongo mongo=newMongo("localhost",27017);
DB db=mongo.getDB("yourdb");
//get a single collection
DBCollection collection=db.getCollection("mmyColl");
//BasicDBObject example
System.out.println("BasicDBObject example...");
BasicDBObject document=newBasicDBObject();
document.put("database","mkyongDB");
document.put("table","hosting");
BasicDBObject documentDetail=newBasicDBObject();
documentDetail.put("records","99");
documentDetail.put("index","vps_index1");
documentDetail.put("active","true");
document.put("detail", documentDetail);
collection.insert(document);
DBCursor cursorDoc=collection.find();
while(cursorDoc.hasNext()){
System.out.println(cursorDoc.next());
}
collection.remove(newBasicDBObject());
//BasicDBObjectBuilder example
System.out.println("BasicDBObjectBuilder example...");
BasicDBObjectBuilder documentBuilder=BasicDBObjectBuilder.start()
.add("database","mkyongDB")
.add("table","hosting");
BasicDBObjectBuilder documentBuilderDetail=BasicDBObjectBuilder.start()
.add("records","99")
.add("index","vps_index1")
.add("active","true");
documentBuilder.add("detail", documentBuilderDetail.get());
collection.insert(documentBuilder.get());
DBCursor cursorDocBuilder=collection.find();
while(cursorDocBuilder.hasNext()){
System.out.println(cursorDocBuilder.next());
}
collection.remove(newBasicDBObject());
//Map example
System.out.println("Map example...");
Map documentMap=newHashMap();
documentMap.put("database","mkyongDB");
documentMap.put("table","hosting");
Map documentMapDetail=newHashMap();
documentMapDetail.put("records","99");
documentMapDetail.put("index","vps_index1");
documentMapDetail.put("active","true");
documentMap.put("detail", documentMapDetail);
collection.insert(newBasicDBObject(documentMap));
DBCursor cursorDocMap=collection.find();
while(cursorDocMap.hasNext()){
System.out.println(cursorDocMap.next());
}
collection.remove(newBasicDBObject());
//JSON parse example
System.out.println("JSON parse example...");
String json="{'database' : 'mkyongDB','table' : 'hosting',"+
"'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";
DBObject dbObject=(DBObject)JSON.parse(json);
collection.insert(dbObject);
DBCursor cursorDocJSON=collection.find();
while(cursorDocJSON.hasNext()){
System.out.println(cursorDocJSON.next());
}
collection.remove(newBasicDBObject());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(MongoException e){
e.printStackTrace();
}
}
}