首页 > 数据库 >Spring Boot 整合MongoDB

Spring Boot 整合MongoDB

时间:2022-11-01 17:01:34浏览次数:62  
标签:Spring Boot System MongoDB studentDao Student mongodb println out

安装 Docker

https://www.cnblogs.com/zk2020/p/15547782.html

Docker安装MondoDB

# 拉去镜像
docker pull mongo:latest
# 创建和启动容器。-d 前台还是后台启动默认false,--restart=always 退出容器时总是重启,
# -p 指定容器暴露的端口号,--name指定容器的名字,-v 给容器挂在存储卷,挂载到容器的某个目录
docker run -d --restart=always -p 27017:27017 --name mongodb -v /data/mongodb:/data/db mongo
# 进入容器
docker exec -it mongodb /bin/bash
# 以 admin进入 mongodb
mongo admin
# 创建一个admin管理员账号
db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
# 退出mongodb
quit()

# 创建普通用户,密码
docker exec -it mongodb admin
db.auth("root","root");
db.createUser({ user: 'zs', pwd: '123456', roles: [ { role: "readWrite", db: "app" } ] });

Spring-Boot整合MongoDB

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
# 应用名称
server.port=8081

# 这种方式不可行
#spring.data.mongodb.port=27017
#spring.data.mongodb.host=192.168.11.8
#spring.data.mongodb.username=root
#spring.data.mongodb.password=root

spring.data.mongodb.uri=mongodb://root:[email protected]:27017/test?authSource=admin&authMechanism=SCRAM-SHA-1
#                 格式: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

public interface StudentDao extends MongoRepository<Student, String> {

}
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Student implements Serializable {
    static final long serialVersionUID = 1L;
    @Id// 必须指定id列
    private String studentId;

    private String studentName;

    private Integer studentAge;

    private Double studentScore;

    private Date studentBirthday;

//    private String teacherName;
}
@SpringBootTest
class MongodbApplicationTests {
    @Autowired
    StudentDao studentDao;

    @Test
    void contextLoads() {
        /*for (int i = 0; i < 10; i++) {
            studentDao.save(new Student((20 + i) + "", "TvT" + i, 15 + i, 88.0, new Date()));
        }*/
        //保存对象,如果id为空则随机
//        System.out.println(studentDao.save(new Student(null, "赵六", 30, 88.0, new Date())));

        //查询全部
//        System.out.println(studentDao.findAll());

        //查询数据库总数
//        System.out.println(studentDao.count());

        //查询姓名为张三的数量
        /*System.out.println(
                studentDao.count(
                        Example.of(
                                new Student(null, "张三", null, null, null)
                        )
                )
        );*/

        //查询姓名张三的用户
//        System.out.println(studentDao.findOne(Example.of(  new Student(null, "张三", null, null, null))));

        //根据id判断是否存在
//        System.out.println(studentDao.existsById("1"));
//        Student s = new Student();
//        s.setStudentId("0");
//        System.out.println(studentDao.exists(Example.of(s)));

        //排序查询按照id降序
//        System.out.println(studentDao.findAll(Sort.by(Sort.Order.asc("id"))));
        //排序查询,根据id默认升序
//        System.out.println(studentDao.findAll(Sort.by(Sort.Order.by("id"))));

        //分页查询
//        studentDao.findAll(PageRequest.of(0, 5)).stream().forEach(System.out::println);

        //批量查询
//        studentDao.findAllById(Arrays.asList("1", "2")).forEach(System.out::println);

        //更新,利用save更新所有字段都更新
//        Student s = new Student();
//        s.setStudentId("1");
//        s.setStudentName("吉良吉影");
//        studentDao.save(s);


        //添加一个新字段(先查询在保存 或者 直接保存一个新的对象)
//        Optional<Student> optional = studentDao.findById("1");
//        Student student = optional.get();
//        student.setTeacherName("张三");
//        studentDao.save(student);

        //删除全部
//        studentDao.deleteAll();
    }

}

标签:Spring,Boot,System,MongoDB,studentDao,Student,mongodb,println,out
From: https://www.cnblogs.com/zk2020/p/16848323.html

相关文章

  • linux 安装配置mongodb
    注意博文中,有log文件,或者文件夹命令错误https://www.cnblogs.com/mnote/p/8979299.htmlhttps://www.jianshu.com/p/348615ebb7b6https://developer.aliyun.com/article......
  • Spring Boot读取Yml配置文件的3种方法
    1 基础用法,使用@Value注解直接注入配置信息@Value("${spring.datasource.username}")privateStringname;2 使用注解@Autowired注入Environment类@......
  • bootstrap table 和select不冲突导包
    <linktype="text/css"rel="stylesheet"href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"><scripttype="text/javascript"src="https://cdn.boo......
  • 651 Bootstrap_栅格系统_入门 and 652 Bootstrap栅格系统注意事项
    ##响应式布局同一套页面可以兼容不同分辨率的设备实现:依赖于栅格系统:将一行平均分成十二个格子,可以指定元素占几个格子步骤:1、定义容器,......
  • linux 一键启动spring boot项目
    我们知道启动springboot的项目有三种方式:运行主方法启动使用命令mvnspring-boot:run”在命令行启动该应用运行“mvnpackage”进行打包时,会打包成一个可以直接运行的JAR......
  • 三 docker安装rabbitMQ之springboot集成stomp,实现前端主动刷新
    一 场景分析对于一些需要数据同步的场景中,例如后台数据有变化,需要程序主动刷新前端界面的数据显示,这样能提供更好的用户数据交互,能第一时间了解到资源信息的变化,而不是......
  • Springboot 自定义注解
    @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceMyAnnotation{Stringkey();}Annotation型定义为 @in......
  • springboot 请求参数 在swagger中 时间戳(Timestamp)被不断下拉展示
     在项目中,请求参数是Timestamp类型的在swagger显示如下: 对应的参数:@ApiModelProperty(value="查询时间-开始yyyy-MM-dd")privateTimestampstartDate;修改成:@A......
  • Spring学习
    1、Spring1.1、简介2002年,首次推出了Spring雏形:interface21框架;2004年3月24日发布了1.0版本RodJohnson,SpringFramework创始人,著名作者,悉尼大学博士,音乐学专业。Sp......
  • yii2、百度地图、bootstrap冲突的处理过程
    前段时间,因为工作需要,借助百度地图api,写了一个小小的web工具,用于按关键词标注一些地点并展示出来。解决了前期的关键点,工作完成了七七八八之后,我发现,yii2自带的bootstrap3......