MongoDB工具类

CommonMongoDao

import java.util.List;

 

import org.springframework.data.mongodb.core.query.Query;

import org.springframework.data.mongodb.core.query.Update;

 

/**

* @author 

*

*/

public interface CommonMongoDao<T> {

    /**

     * 通过条件查询实体(集合)

     *  

     * @param query

     */  

    public List<T> find(Query query) ;  

  

    /**

     * 通过一定的条件查询一个实体

     *  

     * @param query

     * @return

     */  

    public T findOne(Query query) ;  

  

    /**

     * 通过条件查询更新数据

     *  

     * @param query

     * @param update

     * @return

     */  

    public boolean update(Query query, Update update,Class<T> clazz) ;  

  

    /**

     * 保存一个对象到mongodb

     *  

     * @param entity

     * @return

     */  

    public T save(T entity) ;  

  

    /**

     * 通过ID获取记录

     *  

     * @param id

     * @return

     */  

    public T findById(String id,Class<T> clazz) ;  

  

    /**

     * 通过ID获取记录,并且指定了集合名(表的意思)

     *  

     * @param id

     * @param collectionName

     *            集合名

     * @return

     */  

    public T findById(String id, String collectionName) ;  

    

      

//    /**

//     * 分页查询

//     * @param page

//     * @param query

//     * @return

//     */  

//    public Page<T> findPage(Page<T> page,Query query);  

      

    /**

     * 求数据总和

     * @param query

     * @return

     */  

    public long count(Query query);  

    

    /**

     * @param id

     * @return

     */

    public boolean  del(Query query,  Class<T> clazz);

}

 

 

CommonMongoService

 

import java.util.List;

 

import javax.annotation.Resource;

 

import org.bson.types.ObjectId;

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.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;

importcom.hrhq.core.common.dao.CommonMongoDao;

import com.hrhq.utils.ReflectUtils;

import com.mongodb.WriteResult;

 

 

/**

 * @author 

 *

 */

@Service

@Transactional

public  class CommonMongoService<T> implements CommonMongoDao<T> {

    

    @Resource

     MongoTemplate mongoTemplate;

 

     @Override 

        public List<T> find(Query query) { 

            return mongoTemplate.find(query, this.getEntityClass()); 

        } 

     

        @Override 

        public T findOne(Query query) { 

            return mongoTemplate.findOne(query, this.getEntityClass()); 

        } 

     

        @Override 

        public boolean update(Query query, Update update,Class<T> clazz) { 

            WriteResult updateMulti = mongoTemplate.updateMulti(query, update, clazz); 

            int result = updateMulti.getN();

            return result > 0 ? true : false;

        } 

     

        @Override 

        public T save(T entity) { 

            mongoTemplate.insert(entity); 

            return entity; 

        } 

     

        @Override 

        public T findById(String id,Class<T> clazz) { 

            return mongoTemplate.findById(new ObjectId(id), clazz); 

        } 

     

        @Override 

        public T findById(String id, String collectionName) { 

            return mongoTemplate.findById(id, this.getEntityClass(), collectionName); 

        } 

         

    /*    @Override 

        public 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; 

        }  */

         

        @Override 

        public long count(Query query){ 

            return mongoTemplate.count(query, this.getEntityClass()); 

        } 

         

     

        /**

         * 获取需要操作的实体类class

         * 

         * @return

         */ 

        private Class<T> getEntityClass(){ 

            return ReflectUtils.getSuperClassGenricType(getClass()); 

        }

 

       @Override

       public boolean del(Query query, Class<T> clazz) {

           WriteResult remove = mongoTemplate.remove(query,clazz);

           int  flag = remove.getN();

           return flag > 0 ? true : false;

       } 

     

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值