mongodbノートを使って、追加、削除、改ページで照会します.

4703 ワード

プロジェクトの中でモノゴを使う時、データベースはすでにインストールされていますので、これではどうやってmongodbデータベースをインストールすればいいですか?
一、配置ファイルにmongodbの配置情報を記入する
spring:
  data:
    mongodb:
      #     
      host: localhost
      #     
      port: 27017
      #      
      username: model
      #       
      password: model
      #     
      database: model
二、エンティティクラスを作成する

public class Model {
	
	@Id
	private String id;
	private String name;
	private int age;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}


/**
 *     Model          
 */
public class ModelRequest implements Serializable {
	private static final long serialVersionUID = -6635068513666846002L;
	private Date startTime;
	private Date endTime;
	//    queryCriteria
	private String queryCriteria;
	private int pageNumber;
    private int pageSize;
	public Date getStartTime() {
		return startTime;
	}
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
	public Date getEndTime() {
		return endTime;
	}
	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
	public String getQueryCriteria() {
		return queryCriteria;
	}
	public void setQueryCriteria(String queryCriteria) {
		this.queryCriteria = queryCriteria;
	}
	public int getPageNumber() {
		return pageNumber;
	}
	public void setPageNumber(int pageNumber) {
		this.pageNumber = pageNumber;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

    
}

三、操作類を作る(この類を通してデータベースと付き合うことができる)
import org.springframework.data.mongodb.repository.MongoRepository;

import com.shsc.log.entity.ApiLog;

public interface ModelDao extends MongoRepository{

}
四、サービスインターフェースを作成する

public interface ModelService {
	 
	 public boolean save(Model model);
	 
	 public boolean delete (Model model);
	 //    
	 public Page findPageList(ModelPage model);
}
サービス実現
@Service
public class OperationLogServiceImpl implements OperationLogService {
	@Autowired
	private ModelDao modelDao;
	@Autowired
	//       mongodb   ,     ,    ,    modelDao,    mongoTemplate       
	private MongoTemplate mongoTemplate;
	//  
	@Override
	public boolean save(Model model ) {
		model .setId(UUID.randomUUID().toString().replace("-", ""));
		return modelDao.save(model ) != null;
	}
	//  
	@Override
	public boolean delete(ModelRequest modelRequest ) {
		Query query = new Query();//        
		Criteria criteria = new Criteria();//    
		if (operationLogRequest.getStartTime() != null && operationLogRequest.getEndTime() != null) {
			criteria.andOperator(
 			    	Criteria.where("logTime").gte(operationLogRequest.getStartTime()),
					Criteria.where("logTime").lt(operationLogRequest.getEndTime())
			);
		}
		query.addCriteria(criteria);// criteria  query    
		return mongoTemplate.remove(query, Model.class) != null;
	}
    //    
	@Override
	public Page findPageList(OperationLogRequest operationLogRequest) {
		int page = operationLogRequest.getPageNumber();
		int size = operationLogRequest.getPageSize();
		Sort sort = new Sort(Sort.Direction.DESC, "logTime");
		Pageable pageable = new PageRequest(page - 1, size, sort);
		Query query = new Query();
		Criteria criteria = new Criteria();
		if (operationLogRequest.getStartTime() != null && operationLogRequest.getEndTime() != null) {
			criteria.andOperator(
					Criteria.where("logTime").gte(operationLogRequest.getStartTime()),
					Criteria.where("logTime").lt(operationLogRequest.getEndTime())
			);
		}
		Criteria queryCriteria = new Criteria();
		//       
		if (operationLogRequest.getQueryCriteria() != null) {
				queryCriteria.orOperator(Criteria.where("requestUserName").regex(operationLogRequest.getQueryCriteria()),
					Criteria.where("systemName").regex(operationLogRequest.getQueryCriteria()),
					Criteria.where("systemCode").regex(operationLogRequest.getQueryCriteria()));
		}
		//  query        ,         new Criteria(),Criteria      (criteria, queryCriteria)
		query.addCriteria(new Criteria().andOperator(criteria, queryCriteria));
		long total = operationinLogDao.count();
		List items = mongoTemplate.find(query.with(pageable), OperationLog.class);
		return new PageImpl(items, pageable, total);
	}
}