mongodb初体验
最近关注大数据,自然会关注到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更适合网络传输。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。