springboot集成mongodb_spring boot 集成mongodb

mongodb的安装在官网上下载,不做说明

这里说下集成代码:

1 先上pom依赖:

org.springframework.boot

spring-boot-starter-data-mongodb

2 配置文件

spring.data.mongodb.host=127.0.0.1

spring.data.mongodb.port=27017

spring.data.mongodb.database=mwdb

#spring.data.mongodb.password=root

#spring.data.mongodb.username=123456

3 在上controller 代码

A 直接使用mongoTemplate

@Autowired

private MongoTemplate mongoTemplate;

private static final String collectionName = "User";

@RequestMapping(value = "/insert", method = RequestMethod.POST)

@ResponseBody

public ResultObject insert(@ModelAttribute User user) throws Exception {

this.mongoTemplate.insert(user);

return new ResultObject(HttpServletResponse.SC_OK);}

@RequestMapping("/delete")

@ResponseBody

public ResultObject delete(@RequestParam("userId") String userId) throws Exception {

Query query = Query.query(Criteria.where("userId").is(userId));

this.mongoTemplate.remove(query, collectionName);

return new ResultObject(HttpServletResponse.SC_OK);

}

@RequestMapping(value = "/update", method = RequestMethod.POST)

@ResponseBody

public ResultObject update(@ModelAttribute User user) throws Exception {

Query query = Query.query(Criteria.where("userId").is(user.getUserId()));

Update update = new Update();

update.set("age", user.getAge());

update.set("name", user.getName());

update.set("email", user.getEmail());

this.mongoTemplate.updateFirst(query, update, collectionName);

return new ResultObject(HttpServletResponse.SC_OK);

}

@RequestMapping("/query")

@ResponseBody

public ResultObject query() throws Exception {

Query query = Query.query(Criteria.where("status").is(1));

List users = this.mongoTemplate.find(query, User.class);

return new ResultObject(HttpServletResponse.SC_OK, users);

}

实体类需要注意的是

@Document(collection="User")

public class User {

}

上述描述了springboot 集成mongodb的基本操作;

postman模拟请求

1、新增URL:http://localhost:8080/pro/user/insert?userId=001&name=David&uclass=C&email=xxxoo@sina.com&age=44&status=1

2、删除URL:http://localhost:8080/pro/user/delete?userId=001

3、修改URL:http://localhost:8080/pro/user/update?userId=014&name=Tom&uclass=C&email=xxxoo@sina.com&age=65&status=2

4、查询URL:http://localhost:8080/pro/user/query

上述操作省略了业务层的接口,有需要的可以私信留言交流,

主要关键的方法也可以这样来做:

增mongoTemplate.save(user);

删mongoTemplate.remove(query,UserEntity.class);

改Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord());

//更新查询返回结果集的第一条 WriteResult result =mongoTemplate.updateFirst(query,update,UserEntity.class);

查Query query=new Query(Criteria.where("userName").is(userName));

UserEntity user = mongoTemplate.findOne(query , UserEntity.class);

B 使用实体相关的mongoRepository接口

如:

@Service

public interface UserRepository extends MongoRepository {

public User findByName(String name);

}这种操作也会简化用户的编码;

很简单的demo,下面在加上分页查询的操作:

Query query = new Query();

if (!Utils.isEmpty(status)){

query.addCriteria(Criteria.where("status").regex("^" +status + "$", "i"));

}

if (beginTime==null||endTime==null){

if (beginTime!=null){

query.addCriteria(Criteria.where("updateTime").gte(beginTime));

}

if (endTime!=null){

query.addCriteria(Criteria.where("updateTime").lte(endTime));

}

}else {

query.addCriteria(Criteria.where("updateTime").gte(beginTime).lte(endTime));

}

query.with(new Sort(Sort.Direction.DESC, "updateTime"));

query.with(PageRequest.of(pageNo-1,pageSize));

Long count = mongoTemplate.count(query, User.class);

List userList = this.getMongoTemplate().find(query,User.class);

de15a544a0e291c972f9fb802ea8af97.png

高并发请求优化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值