读书人

spring集成mongodb打包的简单的CRUD

发布时间: 2013-09-25 11:02:58 作者: rapoo

spring集成mongodb封装的简单的CRUD
1、什么是mongodb

spring集成mongodb打包的简单的CRUD

package cn.sunsharp.alibaba.core.mongo.impl;import java.util.List;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import cn.sunsharp.alibaba.core.Page;import cn.sunsharp.alibaba.core.ReflectionUtils;import cn.sunsharp.alibaba.core.mongo.BaseMongoDAO;public abstract class BaseMongoDAOImpl<T> implements BaseMongoDAO<T>{private static final int DEFAULT_SKIP = 0;private static final int DEFAULT_LIMIT = 200;/** * spring mongodb 集成操作类  */protected MongoTemplate mongoTemplate;@Overridepublic List<T> find(Query query) {return mongoTemplate.find(query, this.getEntityClass());}@Overridepublic T findOne(Query query) {return mongoTemplate.findOne(query, this.getEntityClass());}@Overridepublic void update(Query query, Update update) {mongoTemplate.findAndModify(query, update, this.getEntityClass());}@Overridepublic T save(T entity) {mongoTemplate.insert(entity);return entity;}@Overridepublic T findById(String id) {return mongoTemplate.findById(id, this.getEntityClass());}@Overridepublic T findById(String id, String collectionName) {return mongoTemplate.findById(id, this.getEntityClass(), collectionName);}@Overridepublic Page<T> findPage(Page<T> page,Query query){long count = this.count(query);page.setTotal(count);int pageNumber = page.getPageNumber();int pageSize = page.getPageSize();query.skip((pageNumber - 1) * pageSize).limit(pageSize);List<T> rows = this.find(query);page.setRows(rows);return page;}@Overridepublic long count(Query query){return mongoTemplate.count(query, this.getEntityClass());}/** * 获取需要操作的实体类class * * @return */private Class<T> getEntityClass(){return ReflectionUtils.getSuperClassGenricType(getClass());}/** * 注入mongodbTemplate * * @param mongoTemplate */protected abstract void setMongoTemplate(MongoTemplate mongoTemplate);}
这样,就完成了spring和mongodb的集成,其实很简单的。测试话就直接调用相关方法就可以了。。。


读书人网 >其他数据库

热点推荐