SprinBoot操作MongoDB数据库
2019-07-04 17:51
1516 查看
一、创建SpringBoot工程
这个不用多提… 4000 …记得勾选springboot.data就可以
二、导入jar包
pom.xml文件:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
三、配置MongoDB数据库信息
在application.yml中配置
四、建表
五、CRUD操作
声明 MongoTemplate进行管理的变量mongoTemplate:
@Autowired private MongoTemplate mongoTemplate;
SON中optString和getString的区别:
optString方法会在对应的key中的值不存在的时候返回一个空字符串或者返回你指定的默认值 但是getString方法会报空指针异常的错误
1.插入数据
举例:插入一条数据,返回结果result(插入的一条数据,即文档)转成Json对象,获取result中的数据库生成id号,如果id不为空就表示插入成功。
MongoDB插入语句:
mongoTemplate.insert(T objectToSave,"collectionName")
objectToSave:插入的数据
collectionName:集合名字(表名)
代码:
@Override public boolean save(Student stu){ JSONObject result = JSONObject.fromObject(mongoTemplate.insert(stu,"student")); String id = result.optString("id"); if(id!=null&&!"".equals(id)) { return true; } else { return false; } }
2.查询数据
查询某个用户的日志信息,按时间降序排列,并指定要查询的条数(可用于分页);
先创建一个查询对象Query query,
并向其中添加对用户名的查询约束:query.addCriteria(Criteria.where(“username”).is(username))
指定查询结果的按“某个字段”排序方式:升序or降序:
query.with(new Sort(Sort.Direction.DESC,“某个字段”))
指定要查询的条数(int类型):
query.limit(int “条数”);
MongoDB查询语句:
mongoTemplate.find(Query xx,xxx.class,"collectionName")
代码:
@Override public List<LogInfo> listStuInfoByUser(String username,int pageSize){ Query query = new Query(); query.addCriteria(Criteria.where("username").is(username)); query.with(new Sort(Sort.Direction.DESC,"createTime")); query.limit(pageSize); List<Student> stuList = mongoTemplate.find(query,Student.class,"student"); return stuList ; }
3.分页查询
查询某个时间范围内,指定页码(pageNum)的数据。
query.skip(int n):跳过n条数据
@Override public List<student> listStudentsInfoByTime(int pageNum,int pageSize,String fromTime,String toTime){ Query query = new Query(); //添加查询条件 query.addCriteria(Criteria.where("createTime").gte(fromTime).lte(toTime)); //排序 query.with(new Sort(Sort.Direction.DESC,"createTime")); query.skip((pageNum-1)*pageSize).limit(pageSize); List<Student> res= mongoTemplate.find(query, Student.class,"student"); return res; }
4.删除数据
MongoDB删除语句:
mongoTemplate.remove(query,"student")
代码:
@Override public boolean deleteStu(String id) { Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); JSONObject result = JSONObject.fromObject(mongoTemplate.remove(query,"student")); String count = result.optString("deletedCount"); if(count!=null&&"1".equals(count)){ return true; }else { return false; } }
5.更新数据
约束中添加主键id,确定修改那条数据(文档);
创建更新对象update,在update中设置要修改的数据信息:
update.set(“key”,“value”);
MongoDB查询语句:
mongoTemplate.updateFirst(query,update,"collectionName")
代码:
@Override public boolean updateProtocolDesign(Student stu) { Query query = new Query(); query.addCriteria(Criteria.where("_id").is(stu.getId())); Update update = new Update(); update.set("stuName",stu.getName()); JSONObject result = JSONObject.fromObject(mongoTemplate.updateFirst(query,update,"student")); //返回修改的数量 String count = result.optString("modifiedCount"); if(count!=null&&"1".equals(count)){ return true; }else { return false; } }
相关文章推荐
- tp5(thinkPHP5)操作mongoDB数据库的方法
- MongoDB数据库插入、更新和删除操作详解
- Mongodb数据库的备份与恢复操作实例
- python连接操作mongodb数据库
- 使用MongoDB类操作MongoDB数据库总结
- 非结构化数据--mongodb数据库的基本操作
- Java操作Mongodb数据库
- MongoDB数据库的基本操作命令以及和mysql进行比较
- mongodb数据库集合操作
- 让NodeJS更容易操作Mongodb数据库
- 使用python操作MongoDB数据库
- nodejs操作mongodb数据库
- Python Web 6 —— Python操作MongoDB数据库
- python连接mongodb操作数据示例(mongodb数据库配置类)
- C#操作MongoDB数据库并获取数据方法
- mongoDB数据库的查询操作
- PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例
- Java代码操作mongodb数据库进行简单的分页查询
- php使用mongoclient简单操作mongodb数据库
- mongoDB数据库基本操作