mongDao

来源:互联网 发布:赣州淘宝培训 编辑:程序博客网 时间:2024/05/28 11:49
package com.xlr.demo;import com.xlr.demo.utils.GsonUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoOperations;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import java.util.Collection;import java.util.List;public class MongoDao {private final LoggerWithMDC logger=LoggerWithMDC.getLogger(this.getClass(), "mongo");    @Autowired     private MongoTemplate mongoTemplate;        public MongoTemplate getMongoTemplate() {return mongoTemplate;}public <T> T findOne(Query query, Class<T> entityClass, String collectionName) {logger.info("mongo find one collection:{}, class:{}, query:{}", collectionName, entityClass, query.toString()); T t= mongoTemplate.findOne(query, entityClass,collectionName);//logger.info("mongo find one result collection:{}, class:{},query:{},T:{}",collectionName,entityClass,query.toString(),t.toString()); return t ;}public void save(Object obj,String collectionName){logger.info("mongo save, collectionName: {} data: {}", collectionName, GsonUtils.forLog(GsonUtils.toJson(obj)));mongoTemplate.save(obj,collectionName);}public void update(Query query,Update update,String collectionName){logger.info("mongo collectionName:{} update:{} query:{} ", collectionName, update.toString(), query.toString());mongoTemplate.updateMulti(query,update,collectionName);}/** * 获取指定对象列表 * @return */public <T> List<T> list(Class<T> entityClass,String collectionName) {logger.info("mongo list entityClass:{}, collectionName:{}",entityClass,collectionName);return mongoTemplate.findAll(entityClass,collectionName);}public <T> List<T> find(Query query,Class<T> entityClass,String collectionName){logger.info("mongo find:{} entityClass:{}, collectionName:{}",query.toString(),entityClass,collectionName);return mongoTemplate.find(query, entityClass, collectionName);}public void insert(Collection<? extends Object> batchToSave, String collectionName){logger.info("mongo insert: batchToSave:{}, collectionName:{}",batchToSave,collectionName);mongoTemplate.insert(batchToSave,collectionName);}public Long count(Query query, String collectionName){logger.info("mongo count: entityClass:{}, collectionName:{}",query.toString(),collectionName);return mongoTemplate.count(query,collectionName);}}
简单的DAO层封装