mongodbノートを使って、追加、削除、改ページで照会します.
4703 ワード
プロジェクトの中でモノゴを使う時、データベースはすでにインストールされていますので、これではどうやってmongodbデータベースをインストールすればいいですか?
一、配置ファイルに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);
}
}