1.pom文件中maven的引入
<!-- SpringBoot集成 mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.配置文件
# spring.data.mongodb.uri=mongodb://username:password@localhost:27017/test
spring:
data:
mongodb:
uri: mongodb://116.62.152.137:27087/jwbasta
3.实体类
/**
* 学生基本信息
* @author jiangwei
*
*/
public class Student {
// 主键id
private String id;
// 姓名
private String name;
// 年龄
private Integer age;
// 性别
private Integer sex;
// 身高
private Integer height;
// 爱好
private Hobbies hobbies;
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Integer getHeight() {
return height;
}
public void setHeight(Integer height) {
this.height = height;
}
public Hobbies getHobbies() {
return hobbies;
}
public void setHobbies(Hobbies hobbies) {
this.hobbies = hobbies;
}
}
/**
* 兴趣爱好
* @author jiangwei
*
*/
public class Hobbies {
// 兴趣名称
private String hname;
public String getHname() {
return hname;
}
public void setHname(String hname) {
this.hname = hname;
}
}
4.dao层
/**
* MongoDB数据处理层
* @author jiangwei
*
*/
@Component
public class MongoDbDao {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 保存
* @param s
*/
public void save(Student s) {
mongoTemplate.save(s);
}
/**
* 获取单个
* @param query
* @return
*/
public Student get(Query query) {
return mongoTemplate.findOne(query,Student.class);
}
/**
* 获取所有
* @return
*/
public List<Student> findAll() {
return mongoTemplate.findAll(Student.class);
}
/**
* 按条件更新
* @param query
* @param update
*/
public void update(Query query, Update update) {
mongoTemplate.updateMulti(query,update,Student.class);
}
/**
* 根据条件删除数据
* @param query
*/
public void delete(Query query) {
mongoTemplate.remove(query,Student.class);
}
}
5.service层
/**
* MongoDB操作数据接口
* @author jiangwei
*
*/
public interface MongoDBService {
/**
* 新增
*/
public void save();
/**
* 获取
* @return
*/
public Student get();
/**
* 查询所有
* @return
*/
public List<Student> findAll();
/**
* 更新
*/
public void update();
/**
* 删除
*/
public void delete();
}
/**
* MongoDB业务逻辑实现类
* @author jiangwei
*
*/
@Service
public class MongoDBServiceImpl implements MongoDBService{
@Autowired
private MongoDbDao mongoDbDao;
@Override
public void save() {
// TODO Auto-generated method stub
Student s=new Student();
s.setName("lisi");
s.setAge(17);
s.setSex(1);
s.setHeight(182);
Hobbies h=new Hobbies();
h.setHname("swing");
s.setHobbies(h);
mongoDbDao.save(s);
}
@Override
public Student get() {
//and查询
/* Criteria criteriaName=Criteria.where("name").is("lisi");
Criteria criteriaAage=Criteria.where("age").is(17);
Criteria andCriteria = new Criteria();
andCriteria.andOperator(criteriaName,criteriaAage);
Query query=new Query(andCriteria);*/
//or查询
Criteria criteriaName=Criteria.where("name").is("lisi");
Criteria criteriaAage=Criteria.where("age").gt(16);
Criteria orCriteria = new Criteria();
orCriteria.orOperator(criteriaName,criteriaAage);
Query query=new Query(orCriteria);
return mongoDbDao.get(query);
}
@Override
public List<Student> findAll() {
// TODO Auto-generated method stub
return mongoDbDao.findAll();
}
@Override
public void update() {
Query query=new Query(Criteria.where("name").is("zhangsan"));
Update update=new Update();
update.set("age",30);
update.set("height",188);
update.set("hobbies.hname","basketball");
mongoDbDao.update(query,update);
}
@Override
public void delete() {
// TODO Auto-generated method stub
Query query=new Query(Criteria.where("name").is("zhangsan"));
mongoDbDao.delete(query);
}
}
6.controller层
/**
* MongoDB操作控制层
* @author jiangwei
*
*/
@RestController
@RequestMapping("/mongodb")
public class MongoDBController extends BaseController{
@Autowired
private MongoDBService mongoDbService;
/**
* 新增学生信息
*/
@RequestMapping("/save")
@ResponseBody
public JSONObject save(){
mongoDbService.save();
return CommonUtil.successJson();
}
/**
* 获取单个学生信息
* @return
*/
@RequestMapping("/get")
@ResponseBody
public JSONObject get(){
Student stu=mongoDbService.get();
return CommonUtil.successJson(stu);
}
/**
* 获取所有学生信息
* @return
*/
@RequestMapping("/findAll")
@ResponseBody
public JSONObject findAll(){
List<Student> list=mongoDbService.findAll();
return CommonUtil.successJson(list);
}
/**
* 更新学生信息
* @return
*/
@RequestMapping("/update")
@ResponseBody
public JSONObject update(){
mongoDbService.update();
return CommonUtil.successJson();
}
/**
* 删除学生信息
* @return
*/
@RequestMapping("/delete")
@ResponseBody
public JSONObject delete(){
mongoDbService.delete();
return CommonUtil.successJson();
}
}