Java MongoDB 3.X 3.04 Crud 增删查改 deleteMany updateMany updateOne
2015-08-12 09:40
701 查看
User.java 类
package com.guoxin.mongodb.module; public class User { private String id; private String title; private String date; private String content; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
MongoUtil.java 工具类
package com.guoxin.mongodb.utils; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Arrays; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; import com.mongodb.client.MongoDatabase; public class MongoUtil { public static MongoUtil mongoUtil = null; public static MongoClient mongoClient = null; public static MongoDatabase mongoDataBase = null; private MongoUtil() { } public static MongoUtil getInstance() { if (mongoUtil == null) { mongoUtil = new MongoUtil(); } return mongoUtil; } public void init() { mongoUtil.closeMongoClient(); mongoUtil.getMongoClient(); mongoUtil.getMongoDataBase(); } private void getMongoClient() { System.out.println("*********** getMongoClient***********"); try { // 用户名 数据库 密码 MongoCredential credential = MongoCredential.createCredential( "guoxin01", "guoxin", "123456".toCharArray()); // IP port ServerAddress addr = new ServerAddress("192.168.1.137", 27017); mongoClient = new MongoClient(addr, Arrays.asList(credential)); // 得到数据库 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void getMongoDataBase() { System.out.println("*********** getMongoDataBase***********"); try { if (mongoClient != null) { // 得到数据库 mongoDataBase = mongoClient.getDatabase("guoxin"); } else { throw new RuntimeException("MongoClient不能够为空"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void closeMongoClient() { System.out.println("*********** closeMongoClient***********"); if (mongoDataBase != null) { mongoDataBase = null; } if (mongoClient != null) { mongoClient.close(); } } /** * 将实体类的obj的字段信息和内容动态放到mapParams里面 * * @param mapParams * @param obj * @param method */ public void dymParms(Object mapParams, Object obj, String method) { try { if (obj != null) { Field[] fields = obj.getClass().getDeclaredFields(); Class<?>[] arrClazz = new Class[2]; arrClazz[0] = String.class; arrClazz[1] = Object.class; Method m = mapParams.getClass().getDeclaredMethod(method, arrClazz); m.setAccessible(true); if (fields != null) { for (Field f : fields) { f.setAccessible(true); Object value = f.get(obj); if (null!=value) { Class<?> clazz = value.getClass(); Object[] strs = new Object[2]; if (clazz == String.class) { if ( !"".equals(String.valueOf(value))) { strs[0] = f.getName(); strs[1] = value; m.invoke(mapParams, strs); } } else { strs[0] = f.getName(); strs[1] = value; m.invoke(mapParams, strs); } } } } } } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
[/code]
MongoDao.java Dao接口
package com.guoxin.mongodb.dao; import com.mongodb.BasicDBObject; import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; /** * Dao 层接口 * * @author GuoXin * */ public interface MongoDao { /** * Get Data BY ID * @param db * @param table * @param Id */ public void queryByID(MongoDatabase db, String table, String Id); /** * Insert Data * @param db * @param table * @param obj */ public void insert(MongoDatabase db, String table, Object obj); /** * Delete Data * @param db * @param table * @param obj */ public void delete(MongoDatabase db, String table, Object obj); /** * Update Data * @param db * @param table * @param conditions * @param obj */ public void update(MongoDatabase db, String table, Object conditions, Object obj); }
MongoDaoImpl.java Dao实现类
package com.guoxin.mongodb.dao.impl; import org.bson.Document; import com.guoxin.mongodb.dao.MongoDao; import com.guoxin.mongodb.utils.MongoUtil; import com.mongodb.BasicDBObject; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MapReduceCommand; import com.mongodb.MapReduceOutput; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MapReduceIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.util.JSON; /** * Dao层实现类 * @author GuoXin * */ public class MongoDaoImpl implements MongoDao { @Override public void queryByID(MongoDatabase db, String table,String Id) { MongoCollection<Document> collection = db.getCollection(table); BasicDBObject query = new BasicDBObject("id", Id); FindIterable<Document> iterable = collection.find(query); MongoCursor<Document> cursor = iterable.iterator(); while (cursor.hasNext()) { Document user = cursor.next(); System.out.println(user.toJson()); } cursor.close(); } // test insert @Override public void insert(MongoDatabase db,String table,Object obj) { MongoCollection<Document> collection = db.getCollection(table); Document doc = new Document(); MongoUtil.getInstance().dymParms(doc, obj,"put"); collection.insertOne(doc); FindIterable<Document> iterable = collection.find(); MongoCursor<Document> cursor = iterable.iterator(); while (cursor.hasNext()) { Document user = cursor.next(); System.out.println(user.toString()); } } @Override public void delete(MongoDatabase db,String table,Object obj) { MongoCollection<Document> collection = db.getCollection(table); BasicDBObject query = new BasicDBObject(); MongoUtil.getInstance().dymParms(query, obj, "append"); collection.deleteMany(query); FindIterable<Document> iterable = collection.find(); MongoCursor<Document> cursor = iterable.iterator(); while (cursor.hasNext()) { Document user = cursor.next(); System.out.println(user.toString()); } } @Override public void update(MongoDatabase db,String table,Object conditions,Object obj) { MongoCollection<Document> collection = db.getCollection(table); BasicDBObject where = new BasicDBObject(); MongoUtil.getInstance().dymParms(where, conditions, "append"); BasicDBObject newContent = new BasicDBObject(); MongoUtil.getInstance().dymParms(newContent, obj, "append"); BasicDBObject update = new BasicDBObject("$set",newContent); //updateMany updateOne collection.updateMany(where, update); FindIterable<Document> iterable = collection.find(); MongoCursor<Document> cursor = iterable.iterator(); while (cursor.hasNext()) { Document user = cursor.next(); System.out.println(user.toString()); } } }
相关文章推荐
- MongoDB图形化管理工具
- 为什么pyspider+mongodb只存了一部分数据到数据库,而其他大量数据并没有写入数据库!
- Java中使用MongoDB进行增删改查
- 浅谈MongoDB
- 学习记录之mongodb
- mongodb 命令零散记录
- MongoDB源码概述——内存管理和存储引擎
- MongoDB save or update
- mongodb与sql聚合操作对应图
- mongoDB知识汇总
- mongodb连接不及时关闭的错误
- 【Mongodb】3.0 配置身份验证db.createUser()说明
- MongoDB安装及连接
- mongodb
- 使用Java 连接MongoDB3.X 3.04 带 auth 认证
- MongoDB数据类型
- MongoDB 3.X Crud 增删查改
- MongoDB与内存
- mongodb官网文档阅读笔记:write concern
- Mongodb-使用javaDriver 实现增删改查