Mongodb

A:mongodb 关联jar文件

 

   <dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.1.0</version>
   </dependency>
   <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons-core</artifactId>
    <version>1.4.1.RELEASE</version>
   </dependency>
   <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.5.1.RELEASE</version>
   </dependency>

 

B:spring-mongodb.xml

 

<?xml version="1.0" encoding="UTF-8"?>   
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:mongo="http://www.springframework.org/schema/data/mongo"
    xsi:schemaLocation="http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.1.xsd
        http://www.springframework.org/schema/data/mongo
        http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">
                   
    <!-- Default bean name is 'mongo' -->   
    <mongo:mongo host="172.16.37.143" port="27017"/>   
       
    <!--mongodb 数据库账号和密码信息  --> 
  
    <bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials"> 
        <constructor-arg name="username"  value=""/> 
        <constructor-arg name="password"  value=""/> 
    </bean>  
     
    <!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->   
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">   
            <constructor-arg ref="mongo"/>   
            <constructor-arg name="databaseName" value="rank-sort"/>   
<!--             <constructor-arg ref="userCredentials"/>    -->
    </bean>   
     
<!--     <bean id="userServiceImpl" class="com.caissa.freeline.mongodb.impl.UserServiceImpl" />   -->
 </beans>      

 C:mongodbTemplate 封装

 

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.data.mongodb.core.MongoTemplate;

public class AbstractBaseMongoTemplete implements ApplicationContextAware {
  protected MongoTemplate mongoTemplate;

  /**
   * 设置mongoTemplate
   *
   * @param mongoTemplate
   *          the mongoTemplate to set
   */
  public void setMongoTemplate(MongoTemplate mongoTemplate) {
    this.mongoTemplate = mongoTemplate;
  }

  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    // TODO Auto-generated method stub
    MongoTemplate mongoTemplate = applicationContext.getBean("mongoTemplate", MongoTemplate.class);
    setMongoTemplate(mongoTemplate);
  }

}

D:接口interface

 

import java.util.List;

import com.caissa.freeline.mongodb.domain.DataSortPo;

public interface UserService {
  /*
   * 新增 <br>------------------------------<br>
   *
   * @param user
   */
  public void insert(DataSortPo user);

  /**
   * 批量新增 <br>
   * ------------------------------<br>
   *
   * @param users
   */
  public void insertAll(List<DataSortPo> users);

  /**
   * 删除,按主键id, 如果主键的值为null,删除会失败 <br>
   * ------------------------------<br>
   *
   * @param id
   */
  public void deleteById(String id);

  /**
   * 按条件删除 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   */
  public void delete(DataSortPo criteriaUser);

  /**
   * 删除全部 <br>
   * ------------------------------<br>
   */
  public void deleteAll();

  /**
   * 按主键修改, 如果文档中没有相关key 会新增 使用$set修改器 <br>
   * ------------------------------<br>
   *
   * @param user
   */
  public void updateById(DataSortPo user);

  /**
   * 修改多条 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @param user
   */
  public void update(DataSortPo criteriaUser, DataSortPo user);

  /**
   * 根据主键查询 <br>
   * ------------------------------<br>
   *
   * @param id
   * @return
   */
  public DataSortPo findById(String id);

  /**
   * 查询全部 <br>
   * ------------------------------<br>
   *
   * @return
   */
  public List<DataSortPo> findAll();

  /**
   * 按条件查询, 分页 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @param skip
   * @param limit
   * @return
   */
  public List<DataSortPo> find(DataSortPo criteriaUser, int skip, int limit);

  /**
   * 根据条件查询出来后 再去修改 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   *          查询条件
   * @param updateUser
   *          修改的值对象
   * @return
   */
  public DataSortPo findAndModify(DataSortPo criteriaUser, DataSortPo updateUser);

  /**
   * 查询出来后 删除 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @return
   */
  public DataSortPo findAndRemove(DataSortPo criteriaUser);

  /**
   * count <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @return
   */
  public long count(DataSortPo criteriaUser);


}

E:数据库接口基类

import java.util.List;

import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;

import util.AbstractBaseMongoTemplete;

import com.caissa.freeline.mongodb.UserService;
import com.caissa.freeline.mongodb.domain.DataSortPo;

@Service
public class UserServiceImpl extends AbstractBaseMongoTemplete implements UserService {

  /*
   * 新增 <br>------------------------------<br>
   *
   * @param user
   */  
  public void insert(DataSortPo user) {
     // TODO Auto-generated method stub 
     mongoTemplate.insert(user); 
 } 
 
  /**
   * 批量新增 <br>
   * ------------------------------<br>
   *
   * @param users
   */ 
  public void insertAll(List<DataSortPo> users) {
     // TODO Auto-generated method stub 
     mongoTemplate.insertAll(users); 
 } 
 
  /**
   * 删除,按主键id, 如果主键的值为null,删除会失败 <br>
   * ------------------------------<br>
   *
   * @param id
   */ 
 public void deleteById(String id) { 
     // TODO Auto-generated method stub 
    DataSortPo user = new DataSortPo();
    user.setId(id);
     mongoTemplate.remove(user); 
 } 
 
  /**
   * 按条件删除 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   */ 
  public void delete(DataSortPo criteriaUser) {
     // TODO Auto-generated method stub 
    Criteria criteria = Criteria.where("rule_name").gt(criteriaUser.getRule_name());
     Query query = new Query(criteria); 
    mongoTemplate.remove(query, DataSortPo.class);
 } 
 
  /**
   * 删除全部 <br>
   * ------------------------------<br>
   */ 
 public void deleteAll() { 
     // TODO Auto-generated method stub 
    mongoTemplate.dropCollection(DataSortPo.class);
 } 
 
  /**
   * 按主键修改, 如果文档中没有相关key 会新增 使用$set修改器 <br>
   * ------------------------------<br>
   *
   * @param user
   */ 
  public void updateById(DataSortPo user) {
     // TODO Auto-generated method stub 
     Criteria criteria = Criteria.where("id").is(user.getId()); 
     Query query = new Query(criteria); 
    Update update = Update.update("rule_name", user.getRule_name())
.set("rule_name",
        user.getRule_name());
    mongoTemplate.updateFirst(query, update, DataSortPo.class);
 } 
 
  /**
   * 修改多条 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @param user
   */ 
  public void update(DataSortPo criteriaUser, DataSortPo user) {
     // TODO Auto-generated method stub 
    Criteria criteria = Criteria.where("rule_name").gt(criteriaUser.getRule_name());
    ;
     Query query = new Query(criteria); 
    Update update = Update.update("ads_type", user.getAds_type()).set("ads_type",
        user.getAds_type());
    mongoTemplate.updateMulti(query, update, DataSortPo.class);
 } 
 
  /**
   * 根据主键查询 <br>
   * ------------------------------<br>
   *
   * @param id
   * @return
   */ 
  public DataSortPo findById(String id) {
     // TODO Auto-generated method stub 
    return mongoTemplate.findById(id, DataSortPo.class);
 } 
 
  /**
   * 查询全部 <br>
   * ------------------------------<br>
   *
   * @return
   */ 
  public List<DataSortPo> findAll() {
     // TODO Auto-generated method stub 
    return mongoTemplate.findAll(DataSortPo.class);
 } 
 
  /**
   * 按条件查询, 分页 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @param skip
   * @param limit
   * @return
   */ 
  public List<DataSortPo> find(DataSortPo criteriaUser, int skip, int limit) {
     // TODO Auto-generated method stub 
     Query query = getQuery(criteriaUser); 
     query.skip(skip); 
     query.limit(limit); 
    return mongoTemplate.find(query, DataSortPo.class);
 } 
 
  /**
   * 根据条件查询出来后 再去修改 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   *          查询条件
   * @param updateUser
   *          修改的值对象
   * @return
   */ 
  public DataSortPo findAndModify(DataSortPo criteriaUser, DataSortPo updateUser) {
     // TODO Auto-generated method stub 
     Query query = getQuery(criteriaUser); 
    Update update = Update.update("rule_name", updateUser.getRule_name()).set("rule_name",
        updateUser.getRule_name());
    return mongoTemplate.findAndModify(query, update, DataSortPo.class);
 } 
 
  /**
   * 查询出来后 删除 <br>
   * ------------------------------<br>
   *
   * @param criteriaUser
   * @return
   */ 
  public DataSortPo findAndRemove(DataSortPo criteriaUser) {
     // TODO Auto-generated method stub 
     Query query = getQuery(criteriaUser); 
    return mongoTemplate.findAndRemove(query, DataSortPo.class);
 } 
 /** 
  * count 
  * <br>------------------------------<br> 
  * @param criteriaUser 
  * @return 
  */ 
  public long count(DataSortPo criteriaUser) {
     // TODO Auto-generated method stub 
     Query query = getQuery(criteriaUser); 
    return mongoTemplate.count(query, DataSortPo.class);
 } 
 /** 
  * 
  * <br>------------------------------<br> 
  * @param criteriaUser 
  * @return 
  */ 
  private Query getQuery(DataSortPo criteriaUser) {
     if (criteriaUser == null) { 
      criteriaUser = new DataSortPo();
     } 
     Query query = new Query(); 
     if (criteriaUser.getId() != null) { 
         Criteria criteria = Criteria.where("id").is(criteriaUser.getId()); 
         query.addCriteria(criteria); 
     } 
     return query; 
 } 


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值