java 中 mongodb的各种操作(二)

来源:互联网 发布:struts2书籍推荐 知乎 编辑:程序博客网 时间:2024/05/29 15:39


一、 pplication.xml配置文件


<mongo:mongo host="192.168.0.138" port="27017"/>
<bean id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="db"/>
<constructor-arg name="defaultCollectionName" value="person" />
</bean>
<bean id="personRepository" class="com.mongo.dao.impl.PersonRepository">
<property name="mongoTemplate" ref="mongoTemplate"></property>
</bean>
<context:annotation-config />
  
二、然后编写操作mongodb的接口

package com.mongo.dao; 

import java.util.List; 
 
import com.mongo.bean.Person; 
 
/**
* TODO
 * @author cuiran
 * @version TODO
 */ 
public interface AbstractRepository { 
    
    /**
     * 
     *<b>function:</b>添加对象
    * @author cuiran
    * @createDate 2012-12-12 11:41:30
     */ 
  public void insert(Person person);  
     
    /**
     * 
    *<b>function:</b>根据ID查找对象
     * @author cuiran
    * @createDate 2012-12-12 11:41:41
    */ 
   public Person findOne(String id);    
    /**
    * 
     *<b>function:</b>查询所有
     * @author cuiran
     * @createDate 2012-12-12 16:26:06
    */ 
   public List<Person> findAll();    
    
   public List<Person> findByRegex(String regex); 
   /**
   * 
    *<b>function:</b>删除指定的ID对象
    * @author cuiran
    * @createDate 2012-12-12 16:26:16
     */ 
   public void removeOne(String id);    
    /**
     * 
    *<b>function:</b>删除所有
     * @author cuiran
     * @createDate 2012-12-12 16:25:40
    */ 
    public void removeAll();    
    /**
    * 通过ID找到并修改
    *<b>function:</b>
     * @author cuiran
    * @createDate 2012-12-12 16:25:51
    */ 
    public void findAndModify(String id);    
 
}

再写对应接口的实现类:

package com.mongo.dao.impl; 
 
import java.util.List; 
import java.util.regex.Pattern; 
 
import org.springframework.data.document.mongodb.MongoTemplate; 
import org.springframework.data.document.mongodb.query.Criteria; 
import org.springframework.data.document.mongodb.query.Query; 
import org.springframework.data.document.mongodb.query.Update; 
import com.mongo.bean.Person; 
import com.mongo.dao.AbstractRepository; 
 
public class PersonRepository implements AbstractRepository { 
 
    private MongoTemplate mongoTemplate;    

    @Override 
    public List<Person> findAll() { 
        return getMongoTemplate().find(new Query(), Person.class);    
    } 

   @Override 
   public void findAndModify(String id) { 
        
        getMongoTemplate().updateFirst(new Query(Criteria.where("id").is(id)), new Update().inc("age", 3)); 
 
    } 

    @Override 
    public List<Person> findByRegex(String regex) { 
        // TODO Auto-generated method stub 
         Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);    
         Criteria criteria = new Criteria("name").regex(pattern.toString());    
            return getMongoTemplate().find(new Query(criteria), Person.class);    
   } 

    @Override 
   public Person findOne(String id) { 
        return getMongoTemplate().findOne(new Query(Criteria.where("id").is(id)), Person.class);    
    } 

    @Override 
    public void insert(Person person) { 
       getMongoTemplate().insert(person);    
    } 

    @Override 
    public void removeAll() { 
        List<Person> list = this.findAll();    
        if(list != null){    
            for(Person person : list){    
                getMongoTemplate().remove(person);    
            }    
        }    
    } 
 
    @Override 
    public void removeOne(String id) { 
        Criteria criteria = Criteria.where("id").in(id);    
        if(criteria == null){    
             Query query = new Query(criteria);    
             if(query != null && getMongoTemplate().findOne(query, Person.class) != null)    
                 getMongoTemplate().remove(getMongoTemplate().findOne(query, Person.class));    
        }
       } 

    public MongoTemplate getMongoTemplate() { 
        return mongoTemplate; 
    } 

    public void setMongoTemplate(MongoTemplate mongoTemplate) { 
        this.mongoTemplate = mongoTemplate; 
   } 
}


0 0