MongoDB初探系列之四:MongoDB与Java共舞
来源:互联网 发布:法兰克编程教学 编辑:程序博客网 时间:2024/05/10 12:27
由于版本不同,可能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上上手哇,哈哈。
0 0
- MongoDB初探系列之四:MongoDB与Java共舞
- mongodb系列之四:java高级查询
- MongoDB初探系列之三:MongoDB用户权限操作
- MongoDB初探系列之三:MongoDB用户权限操作
- MongoDB系列之三:java操作MongoDB
- MongoDB系列之Java驱动
- MongoDB实战系列之四:mongodb副本集部署
- MongoDB实战系列之四:mongodb副本集部署
- MongoDB实战系列之四:mongodb副本集部署
- YOUYOU部署MongoDB系列之四(测试MongoDB性能)
- MongoDB实战系列之四:mongodb副本集部署
- 【Spring Data 系列】Spring Data之Mongodb初探
- MongoDB技术之旅一 MongoDB初探
- mongodb系列之--mongodb 主从配置与说明
- mongodb系列之-mongodb gridfs分析(java应用)
- MongoDB初探系列之二:认识MongoDB提供的一些常用工具
- mongodb系列之管理与监控篇
- MongoDB初探-基本概念与数据类型
- HttpClient使用详解
- MAT使用及OOM分析
- 3Sum Closest
- MeasureSpec学习
- JSP和El表达式和JSTL标签库使用
- MongoDB初探系列之四:MongoDB与Java共舞
- Reverse Words in a String
- 7月份,一个多月来的总结
- UIKit框架-11.控制器跳转(UIStoryboardSegue)
- 南极圈、百老汇、前橙会、离异、毕浪、盛斗士…… 抱团突围的“离职帮”
- 单链表的实现---数据结构学习(一)
- 3523 Fence Repair
- 二叉查找树
- 57 - 删除链表中重复的节点