Java MongoDB 3.X 3.04 Crud 增删查改 deleteMany updateMany updateOne

来源:互联网 发布:一寸红底证件照软件 编辑:程序博客网 时间:2024/06/14 11:07
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 portServerAddress addr = new ServerAddress("192.168.1.137", 27017);mongoClient = new MongoClient(addr, Arrays.asList(credential));// 得到数据库} catch (Exception e) {// TODO Auto-generated catch blocke.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 blocke.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 blocke.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}

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 {@Overridepublic 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@Overridepublic 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());}}@Overridepublic 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());}}@Overridepublic 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());}}}


                                             
1 1
原创粉丝点击