Ⅰ 剛學MangoDB資料庫,C#如何與之建立連接連接字元串如何寫最好給個Demo,在此謝過了!!
桌面上新建一個文本文件 改名字為connection.udl 雙擊那個文件 出來圖片上的 根據上面的提示 選擇 驅動(也就是資料庫類型) 伺服器名字 用戶名 密碼等 然後 測試一下連接 都成功了 就保存 最後用記事本打開那個udl文件 裡面的字元串就是資料庫連接字元串
Ⅱ mango資料庫與sql資料庫的區別
Access是由微軟發布的關聯式資料庫管理系統。它結合了「Microsoft Jet Database Engine」和「圖形用戶界面」兩項特點,是Microsoft Office的成員之一。
優點:Access部署簡單方便,就一個文件運用起來比較靈活主要是桌面資料庫系統,他也可以開發基於自己的桌面資料庫應用(UI),也可以作為前端開發工具與其它資料庫搭配開發應用程序(如SQL Server、DB2、Oracle等),熟練的軟體設計師和資料分析師利用它來開發應用軟體,而一些不熟練的程序員和非程序員的初級用戶則使用它來開發簡單的應用軟體。
缺點:數據儲存量小安全性不夠高,加了用戶級密碼容易破解。C/S結構下對伺服器要求很高,否則容易造成Mdb損壞,並發數255,但是對高強度操作適應性差,如果伺服器不夠好、網路不夠好、編程方法不夠好,6-7個人同時訪問就能導致Mdb損壞或者並死,不能將VBA代碼開發的軟體系統直接編譯成Exe可執行文件,不能脫離Access或者Access Runtime環境,該環境相對其他軟體體積較大(50M左右)。Microsoft Access資料庫有一定的極限,如果數據達到100M左右,很容易造成伺服器IIS假死,或者消耗掉伺服器的內存導致伺服器崩潰。
SQL Server是一個關系資料庫管理系統。
優點:安全性高真正的客戶機/伺服器體系結構,圖形化用戶界面,使系統管理和資料庫管理更加直觀、簡單,豐富的編程介面工具為用戶進行程序設計提供了更大的選擇餘地。SQL Server與Windows NT完全集成,利用了NT的許多功能,如發送和接受消息,管理登錄安全性等。SQL Server也可以很好地與Microsoft BackOffice產品集成。具有很好的伸縮性,可跨越多種平台使用,對Web技術的支持,使用戶能夠很容易地將資料庫中的數據發布到Web頁面上。SQL Server還提供數據倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。
缺點:因功能強大,所以操作數據比Access較為復雜。
Ⅲ 如何把json文件導入mango資料庫
直接讀寫文件,再把讀出來的文件內容格式化成json,再用JDBC、Mybatis或者其他框架將json數據存入資料庫。
假設實體類是這樣的:
public class ElectSet {
public String xueqi;
public String xuenian;
public String startTime;
public String endTime;
public int menshu;
public String isReadDB;
//{"xueqi":,"xuenian":,"startTime":,"endTime":,"renshu":,"isReadDB":}
public String getXueqi() {
return xueqi;
}
public void setXueqi(String xueqi) {
this.xueqi = xueqi;
}
public String getXuenian() {
return xuenian;
}
public void setXuenian(String xuenian) {
this.xuenian = xuenian;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public int getMenshu() {
return menshu;
}
public void setMenshu(int menshu) {
this.menshu = menshu;
}
public String getIsReadDB() {
return isReadDB;
}
public void setIsReadDB(String isReadDB) {
this.isReadDB = isReadDB;
}
}
有一個json格式的文件,存的信息如下:
Sets.json:
{"xuenian":"2007-2008","xueqi":"1","startTime":"2009-07-19 08:30","endTime":"2009-07-22 18:00","menshu":"10","isReadDB":"Y"}
具體操作:
/*
* 取出文件內容,填充對象
*/
public ElectSet findElectSet(String path){
ElectSet electset=new ElectSet();
String sets=ReadFile(path);//獲得json文件的內容
JSONObject jo=JSONObject.fromObject(sets);//格式化成json對象
//System.out.println("------------" jo);
//String name = jo.getString("xuenian");
//System.out.println(name);
electset.setXueqi(jo.getString("xueqi"));
electset.setXuenian(jo.getString("xuenian"));
electset.setStartTime(jo.getString("startTime"));
electset.setEndTime(jo.getString("endTime"));
electset.setMenshu(jo.getInt("menshu"));
electset.setIsReadDB(jo.getString("isReadDB"));
return electset;
}
//設置屬性,並保存
public boolean setElect(String path,String sets){
try {
writeFile(path,sets);
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//讀文件,返回字元串
public String ReadFile(String path){
File file = new File(path);
BufferedReader reader = null;
String laststr = "";
try {
//System.out.println("以行為單位讀取文件內容,一次讀一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
//一次讀入一行,直到讀入null為文件結束
while ((tempString = reader.readLine()) != null) {
//顯示行號
System.out.println("line " line ": " tempString);
laststr = laststr tempString;
line ;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return laststr;
}
將獲取到的字元串,入庫即可。
Ⅳ 誰能說說mangodb 和 hbase的區別
1.Mongodb bson文檔型資料庫,整個數據都存在磁碟中,hbase是列式資料庫,集群部署時每個familycolumn保存在單獨的hdfs文件中。
2.Mongodb 主鍵是「_id」,主鍵上面可以不建索引,記錄插入的順序和存放的順序一樣,hbase的主鍵就是row key,可以是任意字元串(最大長度是 64KB,實際應用中長度一般為 10-100bytes),在hbase內部,row key保存為位元組數組。存儲時,數據按照Row key的字典序(byte order)排序存儲。設計key時,要充分排序存儲這個特性,將經常一起讀取的行存儲放到一起。
字典序對int排序的結果是1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行鍵必須用0作左填充。
3.Mongodb支持二級索引,而hbase本身不支持二級索引
4.Mongodb支持集合查找,正則查找,范圍查找,支持skip和limit等等,是最像mysql的nosql資料庫,而hbase只支持三種查找:通過單個row key訪問,通過row key的range,全表掃描
5.mongodb的update是update-in-place,也就是原地更新,除非原地容納不下更新後的數據記錄。而hbase的修改和添加都是同一個命令:put,如果put傳入的row key已經存在就更新原記錄,實際上hbase內部也不是更新,它只是將這一份數據已不同的版本保存下來而已,hbase默認的保存版本的歷史數量是3。
6.mongodb的delete會將該行的數據標示為已刪除,因為mongodb在刪除記錄時並不是真把記錄從內存或文件中remove,而是將該刪除記錄數據置空(寫0或特殊數字加以標識)同時將該記錄所在地址放到一個list列表「釋放列表」中,這樣做的好就是就是如果有用戶要執行插入記錄操作時,mongodb會首先從該「釋放列表」中獲取size合適的「已刪除記錄」地址返回,這種方法會提升性能(避免了malloc內存操作),同時mongodb也使用了bucket size數組來定義多個大小size不同的列表,用於將要刪除的記錄根據其size大小放到合適的「釋放列表」中。Hbase的delete是先新建一個tombstonemarkers,然後讀的時候會和tombstonemarkers做merge,在 發生major compaction時delete的數據記錄才會真真刪除。
7.mongodb和hbase都支持maprece,不過mongodb的maprece支持不夠強大,如果沒有使用mongodb分片,maprece實際上不是並行執行的
8.mongodb支持shard分片,hbase根據row key自動負載均衡,這里shard key和row key的選取盡量用非遞增的欄位,盡量用分布均衡的欄位,因為分片都是根據范圍來選擇對應的存取server的,如果用遞增欄位很容易熱點server的產生,由於是根據key的范圍來自動分片的,如果key分布不均衡就會導致有些key根本就沒法切分,從而產生負載不均衡。
9.mongodb的讀效率比寫高,hbase默認適合寫多讀少的情況,可以通過hfile.block.cache.size配置,該配置storefile的讀緩存佔用Heap的大小百分比,0.2表示20%。該值直接影響數據讀的性能。如果寫比讀少很多,開到0.4-0.5也沒問題。如果讀寫較均衡,0.3左右。如果寫比讀多,果斷默認0.2吧。設置這個值的時候,你同時要參考hbase.regionserver.global.memstore.upperLimit,該值是memstore佔heap的最大百分比,兩個參數一個影響讀,一個影響寫。如果兩值加起來超過80-90%,會有OOM的風險,謹慎設置。
10.hbase採用的LSM思想(Log-Structured Merge-Tree),就是將對數據的更改hold在內存中,達到指定的threadhold後將該批更改merge後批量寫入到磁碟,這樣將單個寫變成了批量寫,大大提高了寫入速度,不過這樣的話讀的時候就費勁了,需要merge disk上的數據和memory中的修改數據,這顯然降低了讀的性能。mongodb採用的是mapfile+Journal思想,如果記錄不在內存,先載入到內存,然後在內存中更改後記錄日誌,然後隔一段時間批量的寫入data文件,這樣對內存的要求較高,至少需要容納下熱點數據和索引。
Ⅳ MangoDB資料庫與MSSQL SERVER使用場景又有什麼區別
要看對數據一致性要求高不高,如果高的話,就用sqlserver,如果不高的話就用mongodb
mongodb是文檔資料庫,存儲形式靈活,能夠存儲海量數據
Ⅵ nosql和mangodb的區別是
nosql是not only sql的縮寫,是一類數據管理系統的統稱
mangodb是一種基於key-value的分布式數據存儲系統,算是nosql的一種
nosql本身的意義是指資料庫系統不局限於關系資料庫的事務限制,通過放棄一些事務上的特性實現海量數據的高效存儲管理,同時能夠支持更加靈活的數據格式,mangodb就是一種nosql資料庫,其特點是面向海量文檔數據的存儲,通過key-value的結構存儲數據,數據分布存儲在集群中,文檔的讀寫訪問通過對key進行hash確定存儲在集群中的哪台伺服器上。
Ⅶ java怎麼連接mangodb需要哪些步驟
開發環境:
System:Win7
IDE:eclipse
Database:mongoDB
開發依賴庫:
JavaEE5、mongo-2.5.3.jar、junit.jar、org.hamcrest.core_1.1.0.v20090501071000.jar
一、准備工作
1、下載Mongodb對java支持jar包
jar包下載地址:
mongoDB對Java的相關支持、技術:http://www.mongodb.org/display/DOCS/Java+Language+Center
驅動源碼下載:https://download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip
在線查看源碼:https://github.com/mongodb/mongo-java-driver
2、下面建立一個JavaProject工程,導入下載下來的驅動包。即可在Java中使用mongoDB,目錄如下:
二、Java操作MongoDB示例
在本示例之前你需要啟動mongod.exe的服務,啟動後,下面的程序才能順利執行;
1、建立simpleTest.java,完成簡單的mongoDB資料庫操作
Mongomongo=newMongo();
這樣就創建了一個MongoDB的資料庫連接對象,它默認連接到當前機器的localhost地址,埠是27017。
DBdb=mongo.getDB(「test」);
這樣就獲得了一個test的資料庫,如果mongoDB中沒有創建這個資料庫也是可以正常運行的。mongoDB可以在沒有創建這個資料庫的情況下,完成數據的添加操作。當添加的時候,沒有這個庫,mongoDB會自動創建當前資料庫。
得到了db,下一步我們要獲取一個「聚集集合DBCollection」,通過db對象的getCollection方法來完成。
DBCollectionusers=db.getCollection("users");
這樣就獲得了一個DBCollection,它相當於我們資料庫的「表」。
查詢所有數據:
DBCursorcur=users.find();
while(cur.hasNext()){
System.out.println(cur.next());
}
完整源碼:
packagecom.mongodb;
importjava.net.UnknownHostException;
importcom.mongodb.util.JSON;
publicclasssimpleTest{
publicstaticvoidmain(String[]args)throwsUnknownHostException,MongoException{
Mongomg=newMongo();
//查詢所有的Database
for(Stringname:mg.getDatabaseNames()){
System.out.println("dbName:"+name);
}
DBdb=mg.getDB("test");
//查詢所有的聚集集合
for(Stringname:db.getCollectionNames()){
System.out.println("collectionName:"+name);
}
DBCollectionusers=db.getCollection("users");
//查詢所有的數據
DBCursorcur=users.find();
while(cur.hasNext()){
System.out.println("while="+cur.next());
}
System.out.println("count="+cur.count());
System.out.println("CursorId="+cur.getCursorId());
System.out.println("cur="+JSON.serialize(cur));
}
}
2、完成CRUD操作,首先建立一個curdTset.java,基本測試代碼如下:
packagecom.mongodb;
importjava.net.UnknownHostException;
importjava.util.ArrayList;
importjava.util.List;
importorg.bson.types.ObjectId;
importorg.junit.After;
importorg.junit.Before;
importorg.junit.Test;
importcom.mongodb.util.JSON;
publicclasscurdTset{
privateMongomg=null;
privateDBdb;
privateDBCollectionusers;//連接的mongodb資料庫
@Before
publicvoidinit(){
System.out.println("TestBefore...");
try{
mg=newMongo();
//mg=newMongo("localhost",27017);
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
//獲取testDB;如果默認沒有創建,mongodb會自動創建
db=mg.getDB("test");
//獲取usersDBCollection;如果默認沒有創建,mongodb會自動創建
users=db.getCollection("users");
}
@After
publicvoiddestory(){
System.out.println("TestAfter...");
if(mg!=null){
mg.close();
}
mg=null;
db=null;
users=null;
System.gc();
}
publicvoidprint(Objecto){
System.out.println(o);
}
privatevoidqueryAll(){
print("查詢users的所有數據:");
//db游標
DBCursorcur=users.find();
inti=1;
while(cur.hasNext()){
print("記錄"+i+":"+cur.next());
i++;
}
}
@Test
publicvoidadd(){
//先查詢所有數據
queryAll();
System.out.println("===============================ADDstart=======================================");
print("ADDcount:"+users.count());
DBObjectuser=newBasicDBObject();
user.put("name","hoojo");
user.put("age",24);
user.put("sex","男");
print(users.save(user).getN());
//添加多條數據,傳遞Array對象
print(users.insert(user,newBasicDBObject("name","tom")).getN());
//添加List集合
Listlist=newArrayList();
list.add(user);
DBObjectuser2=newBasicDBObject("name","lucy");
user.put("age",22);
list.add(user2);
//添加List集合
print(users.insert(list).getN());
//查詢下數據,看看是否添加成功
print("count="+users.count());
System.out.println("===============================ADDend=======================================");
//查詢所有數據
queryAll();
}
@Test
publicvoidremove(){
queryAll();
print("刪除id=4dde2b06feb038463ff09042:"+users.remove(newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042"))).getN());
print("removeage>=24:"+users.remove(newBasicDBObject("age",newBasicDBObject("$gte",24))).getN());
System.out.println("===============================REMOVEend=======================================");
//查詢所有數據
queryAll();
}
@Test
publicvoidmodify(){
print("修改:"+users.update(newBasicDBObject("_id",newObjectId("4dde25d06be7c53ffbd70906")),newBasicDBObject("age",99)).getN());
print("修改:"+users.update(
newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042")),
newBasicDBObject("age",121),
true,//如果資料庫不存在,是否添加
false//多條修改
).getN());
print("修改:"+users.update(
newBasicDBObject("name","haha"),
newBasicDBObject("name","dingding"),
true,//如果資料庫不存在,是否添加
false//false只修改第一條,true如果有多條就不修改
).getN());
//當資料庫不存在就不修改、不添加數據,當多條數據就不修改
//print("修改多條:"+coll.updateMulti(newBasicDBObject("_id",newObjectId("4dde23616be7c19df07db42c")),newBasicDBObject("name","199")));
System.out.println("===============================EDITend=======================================");
//查詢所有數據
queryAll();
}
@Test
publicvoidtestOthers(){
//查詢所有數據
queryAll();
DBObjectuser=newBasicDBObject();
user.put("name","hoojo");
user.put("age",24);
//JSON對象轉換
print("serialize:"+JSON.serialize(user));
//反序列化
print("parse:"+JSON.parse("{"name":"hoojo","age":24}"));
print("判斷tempCollection是否存在:"+db.collectionExists("users"));
//如果不存在就創建
if(!db.collectionExists("users")){
DBObjectoptions=newBasicDBObject();
options.put("size",20);
options.put("capped",20);
options.put("max",20);
print(db.createCollection("account",options));
}
//設置db為只讀
db.setReadOnly(true);
//只讀不能寫入數據
db.getCollection("test").save(user);
}
}
Ⅷ navicat導入mangodb幾百萬行傳輸中斷
解決方法如下:
1.首先進入mongodb的bin目錄下。
2.shift+右鍵打開powershell
3.接下來,打開navicat,開始導入數據
4.在連接處鏈接mongodb
4.點擊新建查詢,一定要新建查詢之後才會出現打開外部文件的選項。
5.點擊文件,打開外部文件,然後選擇我們要導入的數據
6.在數據中添加語法,點擊運行(在那個綠色旁邊),然後在mongodb處右鍵刷新就可以看到資料庫,cqust資料庫就被創建好啦,創建集合。
「Navicat」是一套可創建多個連接的資料庫管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和/或 MongoDB 等不同類型的資料庫,並支持管理某些雲資料庫,例如阿里雲、_騰訊雲。Navicat 的功能足以符合專業開發人員的所有需求,但是對資料庫伺服器初學者來說又相當容易學習。Navicat 的用戶界面 (GUI) 設計良好,讓你以安全且簡單的方法創建、組織、訪問和共享信息。
Ⅸ mangoDB是甚麼類型資料庫與傳統的SQL資料庫1樣么
是非關系型資料庫,文檔型資料庫,是不同類型的資料庫。性能很高
Ⅹ 如何在linux中安裝mangodb
首先到下面的工具原料中的mongodb的對應你系統的安裝包,拷貝到你的linux系統上面,如果有網路可以直接用wget
解壓對應的安裝包
命令如下:
tar zxf mongodb-linux-i686-2.0.2.tgz
因為mongodb不需要像別的資料庫那樣繁瑣的配置解壓後放到慣例的/usr/local目錄下面,當然你可以放到任何地方,放到/usr/local下面方便管理
命令如下:
mv mongodb-linux-i686-2.0.2/* /usr/local/mongodb
然後為mongodb創建資料庫存放的位置和日誌文件,默認是在/data/db下面,同樣為了方便就在mongodb下面建立了相應的目錄
進到mongodb下面的bin目錄下查看mongodb的幫助文檔和我們用到的啟動參數
啟動mongodb資料庫,對應的參數說明用綠色表明了
為了安全期間建議關閉28017埠防止信息外泄
做好上面的操作就可以進入mongodb的客戶端開始你的mongodb之旅了.