MongoDB初探系列之四:MongoDB與Java共舞,mongodb初探

來源:互聯網
上載者:User

MongoDB初探系列之四:MongoDB與Java共舞,mongodb初探

由於版本不同,可能API也有所不同,本次學慣用的是3.0版本。

1、使用的mongodb的jdbc驅動版本為:mongo-java-driver-3.0.0.jar

2、本節只是簡單介紹JDBC操作,暫時不考慮效率問題。

3、封裝的工具類代碼如下:

public class MongoDBProxy {private static MongoDBProxy proxy=null;//單一實例private static MongoDatabase db=null;//資料庫連接對象private static String [] paramArray=new String[5];//資料庫連接參數private MongoDBProxy(){}static{paramArray[0]="username";paramArray[1]="password";paramArray[2]="host";paramArray[3]="port";paramArray[4]="databaseName";}/** * 得到MongoDBProxy * 採用系統預設配置 */public static MongoDBProxy getMongoDBProxy(){if(proxy==null){proxy=new MongoDBProxy();String sURI = String.format("mongodb://%s:%s@%s:%d/%s",paramArray[0],paramArray[1],paramArray[2],Integer.parseInt(paramArray[3]),paramArray[4]); MongoClientURI uri = new MongoClientURI(sURI); MongoClient mongoClient = new MongoClient(uri); db= mongoClient.getDatabase(paramArray[4]);}return proxy;}/** * 批量查詢資料 * @param table  集合名稱  * @param page   分頁參數 * @param filter 過濾條件 * @param sort   排序條件 */public  Page findDocList(String table,Page page,Bson filter,Bson sort){MongoCollection<Document>  coll=db.getCollection(table);long count=coll.count(filter);//根據過濾條件擷取資料總量Page p=PageUtil.createPage(page,Integer.parseInt(String.valueOf(count)));p.setFromUrl((page.getFromUrl()==null)?"":page.getFromUrl());p.setParamString((page.getParamString()==null)?"":page.getParamString());FindIterable<Document> resultIterable=coll.find();//執行條件過濾resultIterable=resultIterable.sort(sort).filter(filter).skip(p.getBeginIndex()).batchSize(p.getEveryPage());MongoCursor<Document> cousor=resultIterable.iterator();List<Document> dataList=new ArrayList<Document>();while(cousor.hasNext()){dataList.add(cousor.next());}p.setDataList(dataList);return PageUtil.buildPageString(p);}/** * 擷取單個文檔 * @param table  集合名稱  * @param filter 過濾條件 * @param sort   排序條件 */public  Document findOneDoc(String table,Bson filter,Bson sort){MongoCollection<Document>  coll=db.getCollection(table);FindIterable<Document> resultIterable=coll.find();if(sort!=null){resultIterable.sort(sort);}if(filter!=null){resultIterable.filter(filter);}return resultIterable.first();}/** * 添加文檔 * @param table 集合名稱 * @prama doc   文檔內容 */public  void addDocument(String table,Document doc){MongoCollection<Document> coll=getCollection(table);coll.insertOne(doc);}/** * 大量新增文檔 * @param table     集合名稱 * @prama docList   文檔集合 */public  void addDocumentList(String table,List<Document> docList){MongoCollection<Document> coll=getCollection(table);coll.insertMany(docList);}/** * 更新文檔 * @param table  集合名稱 * @param query  查詢條件 * @param up     更新資料 */public  UpdateResult updateDocument(String table,Bson query,Bson up){MongoCollection<Document> coll=getCollection(table);return coll.updateOne(query,up);}/** * 替換文檔 * @param table  集合名稱 * @param query  查詢條件 * @param up     替換的檔案對象 */public  UpdateResult replaceDocument(String table,Bson query,Document up){MongoCollection<Document> coll=getCollection(table);return coll.replaceOne(query, up);}/** * 刪除文檔 * @param table  集合名稱 * @param delete 刪除條件 */public  DeleteResult deleteDocument(String table,Bson delete){MongoCollection<Document> coll=getCollection(table);return coll.deleteOne(delete);}/** * 擷取集合對象 * @param table  集合名稱 */private  MongoCollection<Document>  getCollection(String table){return db.getCollection(table);}}

4、調用demo

MongoDBProxy proxy=MongoDBProxy.getMongoDBProxy();System.out.println(proxy.findOneDoc("users",null,null).get("_id"));Document doc=new Document();doc.put("user","李四");proxy.addDocument("users", doc);Bson bson=new BasicDBObject("user","張三");proxy.deleteDocument("users", bson);

後續再深入學習,先用demo上上手哇,哈哈。

著作權聲明:轉載請註明博文地址,尊重作者勞動成果。歡迎關注http://blog.csdn.net/zgs_shmily,一起成長。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.