From 6e93264a1d8100295ca2e3b0a2bc58f547c22a26 Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Sat, 30 Apr 2016 16:56:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/dao/BaseMongoDAO.java | 6 +- .../lyms/platform/common/dao/BaseMongoDAOImpl.java | 190 +++++++++++---------- 2 files changed, 104 insertions(+), 92 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAO.java b/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAO.java index 6512b60..45b9392 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAO.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAO.java @@ -1,5 +1,6 @@ package com.lyms.platform.common.dao; +import java.util.Collection; import java.util.List; import org.springframework.data.mongodb.core.query.Query; @@ -48,6 +49,9 @@ public interface BaseMongoDAO { */ public T save(T entity, String collection); + + public void batchSave(Collection list); + /** * 通过ID获取记录 * @@ -69,7 +73,6 @@ public interface BaseMongoDAO { /** * 分页查询 * - * @param page * @param query * @return */ @@ -92,4 +95,5 @@ public interface BaseMongoDAO { */ public long count(Query query, String collection); + } \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java b/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java index 5fca2f0..d5e0d12 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java @@ -1,103 +1,111 @@ package com.lyms.platform.common.dao; -import java.util.List; - +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.common.utils.MongoConvertHelper; +import com.lyms.platform.common.utils.ReflectionUtils; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.util.Assert; -import com.lyms.platform.common.dao.operator.Page; -import com.lyms.platform.common.utils.MongoConvertHelper; -import com.lyms.platform.common.utils.ReflectionUtils; +import java.util.Collection; +import java.util.List; public class BaseMongoDAOImpl implements BaseMongoDAO { - /** - * spring mongodb 集成操作类  - */ - @Autowired - private MongoTemplate mongoTemplate; - - @Override - public List find(Query query) { - Assert.notNull(query, "execute find method query must not null."); - return mongoTemplate.find(query, this.getEntityClass()); - } - - @Override - public T findOne(Query query) { - Assert.notNull(query, "execute findOne method query must not null."); - return mongoTemplate.findOne(query, this.getEntityClass()); - } - - /** - * 修改根据所有查询条件查出来的数据 - */ - public void update(Query query, T obj) { - Update update = MongoConvertHelper - .convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); - Assert.notNull(update, "execute update method must not null."); - mongoTemplate.updateMulti(query, update, this.getEntityClass()); - } - - @Override - public T save(T entity) { - Assert.notNull(entity, "execute insert method must not null."); - mongoTemplate.insert(entity); - return entity; - } - - @Override - public T save(T entity, String collection) { - Assert.notNull(entity, "execute insert method must not null."); - mongoTemplate.insert(entity, collection); - return entity; - } - - @Override - public T findById(String id) { - return mongoTemplate.findById(id, this.getEntityClass()); - } - - @Override - public T findById(String id, String collectionName) { - return mongoTemplate - .findById(id, this.getEntityClass(), collectionName); - } - - public Page findPage(Query query) { - Page page = new Page(); - page.setPage(query.getSkip()); - page.setLimit(query.getLimit()); - - long count = this.count(query); - page.reBuild((int) count); - List rows = this.find(query); - page.setDataList(rows); - return page; - } - - @Override - public long count(Query query) { - return mongoTemplate.count(query, this.getEntityClass()); - } - - public long count(Query query, String collection) { - return mongoTemplate.count(query, collection); - } - - public void delete(Query query) { - mongoTemplate.findAllAndRemove(query, this.getEntityClass()); - } - - /** - * 获取需要操作的实体类class - * - * @return - */ - private Class getEntityClass() { - return ReflectionUtils.getSuperClassGenricType(getClass()); - } + /** + * spring mongodb 集成操作类 + */ + @Autowired + private MongoTemplate mongoTemplate; + + @Override + public void batchSave(Collection list) { + if (CollectionUtils.isNotEmpty(list)) { + mongoTemplate.insertAll(list); + } + } + + @Override + public List find(Query query) { + Assert.notNull(query, "execute find method query must not null."); + return mongoTemplate.find(query, this.getEntityClass()); + } + + @Override + public T findOne(Query query) { + Assert.notNull(query, "execute findOne method query must not null."); + return mongoTemplate.findOne(query, this.getEntityClass()); + } + + /** + * 修改根据所有查询条件查出来的数据 + */ + public void update(Query query, T obj) { + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); + Assert.notNull(update, "execute update method must not null."); + mongoTemplate.updateMulti(query, update, this.getEntityClass()); + } + + @Override + public T save(T entity) { + Assert.notNull(entity, "execute insert method must not null."); + mongoTemplate.insert(entity); + return entity; + } + + @Override + public T save(T entity, String collection) { + Assert.notNull(entity, "execute insert method must not null."); + mongoTemplate.insert(entity, collection); + return entity; + } + + @Override + public T findById(String id) { + return mongoTemplate.findById(id, this.getEntityClass()); + } + + @Override + public T findById(String id, String collectionName) { + return mongoTemplate + .findById(id, this.getEntityClass(), collectionName); + } + + public Page findPage(Query query) { + Page page = new Page(); + page.setPage(query.getSkip()); + page.setLimit(query.getLimit()); + + long count = this.count(query); + page.reBuild((int) count); + List rows = this.find(query); + page.setDataList(rows); + return page; + } + + @Override + public long count(Query query) { + return mongoTemplate.count(query, this.getEntityClass()); + } + + public long count(Query query, String collection) { + return mongoTemplate.count(query, collection); + } + + public void delete(Query query) { + mongoTemplate.findAllAndRemove(query, this.getEntityClass()); + } + + /** + * 获取需要操作的实体类class + * + * @return + */ + private Class getEntityClass() { + return ReflectionUtils.getSuperClassGenricType(getClass()); + } } \ No newline at end of file -- 1.8.3.1