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层封装
mongDao
最新推荐文章于 2020-05-29 17:26:40 发布