IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot整合mongodb从安装到使用 -> 正文阅读

[Java知识库]SpringBoot整合mongodb从安装到使用

一、首先使用docker安装mongodb

1.创建挂载目录:?

docker volume create mongo_data_db;
docker volume create mongo_data_configdb;

2,拉取镜像

docker pull mongo:4.0.3

?3.创建容器

docker create --name mongodb -p 27017:27017 -v /data/mongodb:/data/db mongo:4.0.3

启动容器

docker start mongodb

进入容器

docker exec -it mongodb /bin/bash

?使用docker ps查看容器进程?

4.初始化管理员账号(进入容器)

# docker exec -it <容器名> <mongo命令> <数据库名>

docker exec -it mymongo mongo admin 

?创建最高权限用户

db.createUser({ user: 'admin', pwd: 'adminpwd', roles: [ { role: "root", db: "admin" } ] });

? ? user:用户名admin

  • pwd:密码adminpwd
  • role:角色root
  • db:授权使用admin库

防火墙开启27017端口,阿里云服务器,需要到阿里云管理页面添加27017端口的对外开放规则

firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=27017/tcp

然后navicat premium中连接查看

?

?二,整合spring data mongodb操作数据

1.集成spring data mongodb,在项目Pom文件中引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2.application.yml配置连接

org.springframework.boot.autoconfigure.mongo.MongoProperties 负责加载MonoDB配置

27017是MongoDB默认的端口,test是内置的数据库。如果MongoDB使用了--auth选项启动,则需要使用用户登录,则使用如下方式链接

spring:
  data:
    mongodb:
      uri: mongodb://test:123456@192.168.161.3:27017/testdb

上边是单机配置,如果是集群参考

    单机模式:mongodb://name:pwd@ip:port/database
    集群模式:mongodb://name:pwd@ip1:port1,ip2:port2/database

在项目入口启动类上面加一个注解@EnableMongoAuditing。开启Mongodb审计功能.

?接下来就可以写crud了

首先创建实体类

@Document(collection="article")//集合名
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Article  implements Serializable {

     private static final long serialVersionUID = 1L;

    @Id
    private String id;

    @Indexed
    private String author;
    private String title;
    @Field("msgContent")
    private String content;

    @CreatedDate
    private Date createTime;
    private List<Reader> reader;


}

?

这里注意:

  1. 一定要实现Serializable 接口,否则在序列化的时候会报错。
  2. @Document(collection=“article”) 表示:操作的集合为:article
  3. 另外,针对@CreatedDate注解,也和jpa用法一样,创建时会自动赋值,需要在启动类中添加@EnableMongoAuditing注解使其生效!
  4. 可使用@Field注解,可指定存储的键值名称,默认就是类字段名。如设置@Field("msgContent")
  5. @Id主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束。如果自己不设置@Id主键,mongo会自动生成一个唯一主键,并且插入时效率远高于自己设置主键。
  6. @Indexed声明该字段需要加索引,加索引后以该字段为条件检索将大大提高速度。
    唯一索引的话是@Indexed(unique = true)。

Dao接口可以按照自己需要集成Repository,CrudRepository,PagingAndSortingRepository,或者继承功能最全的 MongoRepository均可,如下

public interface ArticleDao extends MongoRepository<Article,String> {
        //支持关键字查询,和JPA的用法一样
        Article findByAuthor(String author);

       Page<Article> findAll(Pageable pageable);
}

在Controller里,可以自动注册ArticleDao

@Autowired
private Articledao;

@GetMapping("/all")
public List<Article> page(int page,int size){
  Pageable pageable = PageRequest.of(page,size);
  Page<Article> result =  dao.findAll(pageable);
  return result.getContent();
}

@GetMapping("/queryOne")
public Article queryDetail(String id){
  Optional<Article> optional = dao.findById(id);
  return optional.get();
}

今年五一,拿个博客五一勋章?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:04:09  更:2022-05-05 11:05:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:42:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码