標籤:style blog io color os 使用 java sp 資料
最近關注大資料,自然會關注到nosql資料庫,其中當然是mongodb。
nosql資料庫大多是k,v資料庫,這也不是新鮮的名詞了,berkerly DB已經存在很多年了,現在屬於oracle。
具體k,v資料庫為何比傳統資料庫優載的原理,還需要深入瞭解和學習。同時兩者應該是各有存在的空間。
mongodb的使用非常簡單,簡單封裝一下類如下:
1 package DBHelper; 2 3 import com.mongodb.*; 4 import com.mongodb.util.JSON; 5 6 import java.net.UnknownHostException; 7 import java.util.List; 8 9 /**10 * Created by Weijiabin on 2014/10/29.11 */12 public class MongoDB {13 14 public MongoDB() throws UnknownHostException {15 _mongo = new Mongo();16 }17 private Mongo _mongo;18 public DB getDb(String strDbName){19 return _mongo.getDB(strDbName);20 }21 22 public DBCollection getDbCollection(String strStrDbName, String strTableName){23 return getDb(strStrDbName).getCollection(strTableName);24 }25 26 public void add(String strDbName,String strTableName, DBObject obj){27 getDbCollection(strDbName,strTableName).save(obj);28 }29 30 public void addList(String strDbName,String strTableName, List<DBObject> objList){31 getDbCollection(strDbName,strTableName).insert(objList);32 }33 34 public int remove(String strDbName,String strTableName,DBObject obj){35 return getDbCollection(strDbName,strTableName).remove(obj).getN();36 }37 38 public int modify(String strDbName,String strTableName,DBObject objQ,DBObject objN,boolean bUpdateAll){39 return getDbCollection(strDbName,strTableName).update(objQ,objN,true,bUpdateAll).getN();40 }41 42 public DBObject query(String strDbName,String strTableName,DBObject objQ){43 return getDbCollection(strDbName,strTableName).findOne(objQ);44 }45 46 47 48 }
測試代碼如下:
package DBHelper;import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import org.junit.Test;import static org.junit.Assert.*;public class MongoDBTest { @Test public void testGetDb() throws Exception { MongoDB db = new MongoDB(); BasicDBObject obj = new BasicDBObject(); obj.put("name","weijiabin"); obj.put("sex","man"); obj.put("age",32); db.add("db1","users",obj); BasicDBObject objQ = new BasicDBObject("age",32); DBObject objR = db.query("db1", "users", objQ); assertEquals("weijiabin",objR.get("name")); }}
看得出來,相當的簡單和易用。直接操作json資料結構,有xml的優點,同時比xml更適合網路傳輸。
mongodb初體驗