博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 入门:整合MongoDB,做简单查找功能
阅读量:4290 次
发布时间:2019-05-27

本文共 3970 字,大约阅读时间需要 13 分钟。

接着昨天来,今日整合入MongoDB,做个简单的查找功能出来。多说无用,开搞~

今日目标:加入MongoDB支持。写一个简单的查询。
首先,搭建环境、学习MongoDB这都不提了,这里只说java相关,顺嘴提一句,比起繁琐的SQL来说,感觉要简单不少。可能是还没有深入了解的原因。
步骤一:在pom.xml中加入对MongoDB的支持,配置相关properties:

pom.xml:
org.springframework.boot
spring-boot-starter-data-mongodb
application.properties:spring.data.mongodb.uri=mongodb://simon:123456@192.168.150.128:27017/MongoDemo

步骤二:添加相应实体类(根据数据库中表字段添加)

package com.simon.pojo;import org.bson.types.ObjectId;import org.springframework.data.mongodb.core.mapping.Document;/** * @Author Simon * @Date 2017/5/9 23:07 */@Documentpublic class Users {
private ObjectId id; private String name; private String sex; private String age; public Users(Long id, String name, String sex, String age) { this.id = id; this.name = name; this.sex = sex; this.age = age; }//Getter Setter省略。}

步骤三:创建与数据库交互的Dao类和Services类

package com.simon.dao;import com.simon.pojo.Users;import org.springframework.data.mongodb.repository.MongoRepository;/** * @Author Simon * @Date 2017/5/9 23:20 */@Componentpublic interface UsersDao extends MongoRepository
{
//自定义方法 List
findByName(String name);}
package com.simon.services;import com.simon.pojo.Users;import java.util.List;/** * @Author Simon * @Date 2017/5/9 23:33 */public interface UsersServices {
List
findByName(String name); void save(Users users); void delete(Users users); void udate(Users users); List
findAll();}
package com.simon.services.impl;import com.simon.dao.UsersDao;import com.simon.pojo.Users;import com.simon.services.UsersServices;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import java.util.List;@Componentpublic class UsersServicesImpl implements UsersServices {
@Autowired UsersDao usersDao; @Override public List
findByName(String name){ return usersDao.findByName(name); } @Override public void save(Users users){ usersDao.insert(users); } @Override public void delete(Users users){ usersDao.delete(users); } @Override public void udate(Users users){ usersDao.save(users); } @Override public List
findAll(){ return usersDao.findAll(); }}

步骤三:Controller类:

package com.simon.controller;import com.simon.pojo.Users;import com.simon.services.UsersServices;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;/** * @Author Simon * @Date 2017/5/9 0:02 */@Controllerpublic class HelloController {    @Autowired    UsersServices usersServices;    @RequestMapping("/findAllUsers")    @ResponseBody    public String findAll(){        List
list = usersServices.findAll(); StringBuffer sb = new StringBuffer(); for (Users users : list){ sb.append(users.getName()); } return sb.toString(); } @RequestMapping("/findByName") @ResponseBody public String findByName(@RequestParam(value = "name")String name){ List
list = usersServices.findByName(name); StringBuffer sb = new StringBuffer(); for (Users users : list){ sb.append(users.getName()); } return sb.toString(); }}

此处只写两个查询,增删改留到junit中测试。

运行结果如下:
查询所有:
查询所有
根据姓名查询:
根据姓名查询

问题1:增删改差只有接口,并没有实现类,怎么实现的。按字段查找也没有实现类,怎么实现的。

答:目前只知道是org.springframework.data.mongodb.repository包下的接口类MongoRepository有实现类,是他实现的,但是按照字段查找目前仍未找到原因,明天深查。

问题2:在pojo类Users中,id字段原本使用的是long类型,结果报错No converter found capable of converting from type org.bson.types.ObjectId to type Long

,后改为org.bson.types.ObjectId类型才解决。
答:仍未找到答案,后续补充。

明日目标:测试增删改,增加SpringBoot热部署功能。查找今日问题。

你可能感兴趣的文章
netty源码分析之-开发过程中重要事项分析(7)
查看>>
Sublime Text3插件详解
查看>>
netty源码分析之-ByteBuf详解(8)
查看>>
javascript函数定义三种方式详解
查看>>
javascript中this关键字详解
查看>>
javascript关于call与apply方法详解
查看>>
netty源码分析之-ReferenceCounted详解(9)
查看>>
javascript闭包详解
查看>>
javascript类的创建与实例对象
查看>>
javascript原型详解(1)
查看>>
netty源码分析之-处理器详解(9)
查看>>
javascript原型对象存在的问题(3)
查看>>
javascript原型继承(1)
查看>>
javascript原型继承-实现extjs底层继承(2)
查看>>
javascript设计模式-建立接口的方式(1)
查看>>
javascript设计模式-单体singleton模式(2)
查看>>
javascript设计模式-链式编程(3)
查看>>
大型高并发与高可用缓存架构总结
查看>>
javascript设计模式-工厂模式(4)
查看>>
javascript设计模式-组合模式(6)
查看>>