《MongoDB权威指南》学习整理----Java操作MongoDB实例
2014-03-10 17:16
621 查看
简介
虽然上面我们介绍了很多MongoDB的知识,但是对于J2EE程序猿来说,我们最多的还是通过MongoDB的Driver来实现对MongoDB实例的操作,虽然我们在实际会遇到各种各种的MongoDB操作,但是都是较为复杂的CRUD,所以我在这里知识简单的介绍下MongDB在Java中的使用,驱动的下载地址推荐使用maven连接OSChina的服务器下载,起码我是这样的,这里我并没有介绍太复杂的MongoDB实例的使用,主要是自己在实际工作中还没有用到,以后使用中会更多的补充。好了,废话已经说完,上代码:代码
public class ChemSearch { public static void main(String[] args) { try { //创建MongoDB实例地址和端口集合 List<ServerAddress> seeds = new ArrayList<ServerAddress>(); seeds.add(new ServerAddress("localhost", 27017)); //创建对应的验证信息 //MongoDB验证在实例启动时使用--auth List<MongoCredential> credentialsList = new ArrayList<MongoCredential>(); credentialsList.add(MongoCredential.createMongoCRCredential("test1", "test", "ljcxlzbjwan".toCharArray())); //创建MongoDB实例客户端连接 MongoClient client = new MongoClient(seeds, credentialsList); //得到目标数据库 DB test = client.getDB("test"); //遍历目标数据库中的所有集合并答应 for(String collectionName:test.getCollectionNames()){ System.out.println(collectionName); } //创建并得到目标集合 DBCollection collection = test.createCollection("javaTest", null); //创建一个Java对象 Student student = new Student(); student.setAge(24); student.setName("李小呆"); Grade grade = new Grade(); grade.setName(3); grade.setTeacherName("李小呆"); student.setGrade(grade); //插入数据到collection insertDocToCollection(student,collection); //查询当前集合下的所有文档 DBCursor cursor= collection.find(); printInter(cursor.iterator()); Student student1 = new Student(); student1.setAge(27); student1.setName("李小呆1"); student1.setGrade(grade); insertDocToCollection(student1, collection); cursor= collection.find(); printInter(cursor.iterator()); //根据条件查询 BasicDBObject query = new BasicDBObject(); query.put("age", 27); DBObject new_info = collection.findOne(query); System.out.println(new_info); //更新数据 BasicDBObject temp = new BasicDBObject(); BasicDBObject temp1 = new BasicDBObject("age", 2); temp.put("$inc", temp1); collection.update(query, temp ); cursor= collection.find(); printInter(cursor.iterator()); //删除数据 collection.remove(query); cursor= collection.find(); printInter(cursor.iterator()); } catch (UnknownHostException e) { e.printStackTrace(); } } @SuppressWarnings("rawtypes") private static void printInter(Iterator iterator){ while(iterator.hasNext()){ System.out.println(iterator.next()); } } private static void insertDocToCollection(Object obj, DBCollection collection) { try { BasicDBObject stu1 = (BasicDBObject)objToDoc(obj); collection.insert(stu1); } catch (Exception e) { e.printStackTrace(); } } @SuppressWarnings("rawtypes") private static DBObject objToDoc(Object obj) throws IllegalArgumentException, IllegalAccessException { BasicDBObject basicDBObject = new BasicDBObject(); Class cls = obj.getClass(); for(Field field : cls.getDeclaredFields()){ field.setAccessible(true); if(field.getType().getPackage().getName().startsWith("java.lang")){ basicDBObject.put(field.getName(), field.get(obj)); }else{ basicDBObject.put(field.getName(), objToDoc(field.get(obj))); } } return basicDBObject; } }
简单说明
通过上面的代码我们可以简单的看出来,MongoDB中文档的概念都是由JAVA中的DBObject接口来抽象化的,而我们常用的是BasicDBObject类。相关文章推荐
- 整理的关于Java对mongodb进行的CURD操作工具类及源码
- 《MongoDB权威指南》学习整理----MongoDB中的聚合
- 《MongoDB权威指南》学习整理----MongoDB文档查询
- MongoDB系列教程(六):java操作mongodb实例
- MongoDB入门学习记录二:java操作MongoDB
- MongoDB系列教程(六):java操作mongodb实例
- Mongodb学习笔记 --- 概念操作整理
- 《MongoDB权威指南》学习整理----MongoDB中的基本数据类型
- java简单操作mongodb实例
- Java与MongoDB的配合使用备忘3-聚合操作group具体实例
- Java框架spring 学习笔记(十二):aop实例操作
- 《MongoDB权威指南》学习整理----MongoDB进阶指南
- MongoDB学习03之JAVA简单操作增删改查
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
- Java学习之路——利用JDOM对xml文档进行解析等操作实例
- java学习(三) java 中 mongodb的各种操作
- MongDB基础学习(六)—— 【MongoDB for Java】Java操作MongoDB
- [MongoDB学习日志]Java对MongoDB的CRUD操作
- MongoDB 用实例学习聚合操作
- Java学习笔记-----Java操作数据库:可以运行的实例