mongdb 结合Spring 操作底层的api 拿走 。不谢

一大波福利正在向你奔来
mongdb 数据库操作 Spring 结合mongdb做数据的增删改查。

package com.tjcb.dbms.metadata.dao;

import java.util.List;
import java.util.Set;

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 com.mongodb.DBCollection;
import com.mongodb.WriteResult;

@SuppressWarnings("unchecked")
public abstract class MongodbBaseDao<T> {
    /** 
     * spring mongodb 集成操作类  
     */  
    @Autowired
    protected  MongoTemplate mongoTemplate;
    /**
     * 获取Mongo操作的模板类
     * @return
     */
    public MongoTemplate getMongoTemplate()
    {
        return mongoTemplate;
    }
    /**
     * 通过条件查询列表
     * @param query
     * @return
     */
    public List<T> findList(Query query)
    {
       return  mongoTemplate.find(query,this.getEntityClass());
    }
    /**
     * 通过查询条件和集合名称查询列表
     * @param query
     * @param collectionName
     * @return
     */
    public  List<T> findList(Query query,String collectionName)
    {
        return mongoTemplate.find(query,getEntityClass() , collectionName);
    }
    /**
     * 查找某一个集合中所有的数据
     * @param collectionName
     * @return
     */
    public List<T> findAllInCollection(String collectionName){
        return mongoTemplate.findAll(this.getEntityClass(), collectionName);
    }

    /**
     * 返回数据行的个数
     * @param query
     * @return
     */
    public long getCount(Query query)
    {
        return mongoTemplate.count(query, this.getEntityClass());
    }
    /**
     * 查询所有数据
     * @return
     */
    public List<T> findAll()
    {
        return mongoTemplate.findAll(this.getEntityClass());
    }

    /**
     *通过条件查询一个实体
     * @param query
     * @return
     */
    public T findOne(Query query)
    {
        return (T) mongoTemplate.findOne(query,this.getEntityClass());
    }
    /**
     * 通过条件更新数据
     * @param query
     * @param update
     */
    public int update(Query query,Update update)
    {
        WriteResult result= mongoTemplate.upsert(query, update, this.getEntityClass());
        return result.getN();
    }
    /**
     * 通过条件更新数据
     * @param query
     * @param update
     * @param collectionName
     * @return
     */
    public int update(Query query,Update update,String collectionName)
    {
        WriteResult result= mongoTemplate.upsert(query, update, this.getEntityClass(), collectionName);
        return result.getN();
    }
    /**
     * 删除数据
     * @param query
     * @return
     */
    public int delete(Query query){
        WriteResult result= mongoTemplate.remove(query,  this.getEntityClass());
        return result.getN();
    }
    /**
     * 依据集合的名称删除数据
     * @param query
     * @param collectionName
     * @return
     */
    public int delete(Query query,String collectionName)
    {
        WriteResult result= mongoTemplate.remove(query, collectionName);
        return result.getN();
    }
    /**
     * 保存对象
     * @param entity
     * @return
     */
    public T save(T entity)
    {
        mongoTemplate.save(entity);
        return entity;
    }
    /**
     * 插入数据
     * @param entity
     * @return
     */
    public T insert(T entity)
    {
        mongoTemplate.insert(entity);
        return entity;
    }
    /**
     * 插入数据
     * @param entity
     * @param collectionName
     */
    public void insert(T entity,String collectionName)
    {
        mongoTemplate.insert(entity, collectionName);
    }
    /**
     * 插入数据
     * @param list
     * @param collectionName
     */
    public void insertAll(List<T> list,String collectionName)
    {
        mongoTemplate.insert(list,collectionName);
    }
    /**
     * 插入多条数据
     * @param list
     * @return
     */
    public List<T> insertMore(List<T> list)
    {
        mongoTemplate.insertAll(list);
        return list;
    }
    /**
     * 通过ID获取记录
     * @param id
     * @return
     */
    public T get(String id)
    {
        return (T) mongoTemplate.findById(id, getEntityClass());
    }
    /**
     * 通过ID和集合的名称查询记录
     * @param id
     * @param colleationName
     * @return
     */
    public T get(String id,String colleationName)
    {
        return (T)mongoTemplate.findById(id, getEntityClass(),colleationName);
    }
    /**
     * 获取所有的集合
     * @return
     */
    public Set<String> getCollectionNames(){
        return  mongoTemplate.getCollectionNames();
    }
    /**
     * 根据名称获取集合
     * @param collectionName
     * @return
     */
    public DBCollection getDBCollectionByName(String collectionName){
        return mongoTemplate.getCollection(collectionName);
    }
    /**
     * 创建集合
     * @param collectionName
     */
    public void createCollection(String collectionName)
    {
        if(!mongoTemplate.collectionExists(collectionName))
             mongoTemplate.createCollection(collectionName);
    }
    /**
     * 删除集合
     * @param collectionName
     */
    public void dropCollection(String collectionName)
    {
        if(mongoTemplate.collectionExists(collectionName));
           mongoTemplate.dropCollection(collectionName);
    }
     /** 
     * 获取需要操作的实体类class 
     *  
     * @return 
     */  
    protected abstract Class<T> getEntityClass();  

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值