springboot整合mongodb并实现crud步骤详解

 更新时间:2021年08月23日 11:41:08   作者:javaBoy_ahua  
这篇文章主要介绍了springboot整合mongodb并实现crud,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

整合

首先我们得使用springboot整合咱们的mongodb,第一步,当然是引入依赖啦

<!--mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
<!--mongodb-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.7</version>
</dependency>
<!--druid数据源-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
</dependency>

applicaton.yml配置

spring:
  data:
    mongodb:
      #uri:  mongodb://localhost:27017/test
      host: 127.0.0.1
      port: 27017
      username:
      password:
      database: test
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource #druid数据源
mybatis:
  type-aliases-package: com.mjs.common.pojo  #这里是实体类所在的包
  mapper-locations: classpath:/mapper/*.xml  #这里是放sql语句的映射文件

紧接着呢,就是咱们的启动类了(Application.class)需要添加注解让它去扫描咱们的dao层。

代码实现:

/**
 * @description 启动类
 * @author shenwang
 * @version 1.0
 * @date 2021/8/20 10:37
 */
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
@MapperScan(basePackages = "com.mjs.dao")
public class MJSagentApplication {
    public static void main(String[] args) {
        SpringApplication.run(MJSagentApplication.class,args);
    }
}

crud

到这里咱们就已经整合完成了,接下来,创建一个类 StudentDao,用于测试

然后再StudentDao中引入MongoTemplate,它底层帮我们封装好了对mondodb操作的代码,简化了我们开发时的操作,这样开发的时候我们有更多的时间去实现业务

@Autowired
private MongoTemplate mongoTemplate;

添加

写一个方法,添加一个学生,调用mongoTemplate中的save方法

/**
 * 添加学生
 * @param student
 */
public boolean insert(Student student){
    Student stu = mongoTemplate.save(student);
    return stu!=null;
}

当然在这里可以使用mongoTemplate自带的insert方法,两者效果相同

删除

咱们也用一个案例来理解删除

目标:根据名字删除学生

实现:

/**
 * 根据学生姓名删除学生
 * @param name
 * @return
 */
public boolean deleteByName(String name){
    //添加约束
    Query query =new Query(Criteria.where("name").is(name));
    //根据条件删除学生,并返回结果
    DeleteResult result = mongoTemplate.remove(query, Student.class);
    return result.getDeletedCount()>0;
}

其他条件可以根据该案例,举一反三

修改

目标:根据id修改学生信息

实现:

/**
 * 根据ID修改学生信息
 * @param student
 * @return
 */
public boolean updateStu(Student student){
    //添加约束
    Query query =new Query(Criteria.where("id").is(student.getId()));
    //设置要修改的值
    Update update=new Update();
    update.set("age",student.getAge());
    update.set("sex",student.getAge());
    //修改并返回结果
    UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Student.class);
    return updateResult.getMatchedCount()>0;
}

查询

无参数的查询所有

/**
 * 获取所有学生
 * @return
 */
public List<Student> findAll(){
    return mongoTemplate.findAll(Student.class);
}

根据条件查询

目标:根据学生名称查询学生列表

实现:

/**
 * 根据学生名称查询学生列表
 * @param name
 * @return
 */
public List<Student> findByName(String name){
    //添加约束
    Query query=new Query(Criteria.where("name").is(name));
    //返回结果
    return mongoTemplate.find(query,Student.class);
}

到此这篇关于springboot整合mongodb并实现crud的文章就介绍到这了,更多相关springboot整合mongodb内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现启动类的存放位置

    SpringBoot实现启动类的存放位置

    这篇文章主要介绍了SpringBoot实现启动类的存放位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java SpringMVC实现自定义拦截器

    Java SpringMVC实现自定义拦截器

    这篇文章主要为大家详细介绍了SpringMVC实现自定义拦截器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Java提示解析时已到达文件结尾的解决方法

    Java提示解析时已到达文件结尾的解决方法

    在本篇文章中小编给大家分享了关于Java提示解析时已到达文件结尾的解决方法,需要的朋友们学习下。
    2019-07-07
  • 高效的java版排列组合算法

    高效的java版排列组合算法

    这篇文章主要为大家详细介绍了高效的java版排列组合算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • java GUI编程之监听操作实例分析

    java GUI编程之监听操作实例分析

    这篇文章主要介绍了java GUI编程之监听操作,结合实例形式分析了java GUI编程监听操作的Button监听、TextField文本输入监听等相关操作技巧与注意事项,需要的朋友可以参考下
    2020-01-01
  • 使用Lombok @Builder注解导致默认值无效的问题

    使用Lombok @Builder注解导致默认值无效的问题

    这篇文章主要介绍了使用Lombok @Builder注解导致默认值无效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • VSCode中开发JavaWeb项目的详细过程(Maven+Tomcat+热部署)

    VSCode中开发JavaWeb项目的详细过程(Maven+Tomcat+热部署)

    这篇文章主要介绍了VSCode中开发JavaWeb项目(Maven+Tomcat+热部署),本文分步骤通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 使用Lucene实现一个简单的布尔搜索功能

    使用Lucene实现一个简单的布尔搜索功能

    Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。接下来通过本文给大家介绍使用Lucene实现一个简单的布尔搜索功能
    2017-04-04
  • Spring Bean的包扫描的实现方法

    Spring Bean的包扫描的实现方法

    这篇文章主要介绍了Spring Bean的包扫描的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 基于dubbo分组group的一些总结

    基于dubbo分组group的一些总结

    这篇文章主要介绍了关于dubbo分组group的一些总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论