目录
前言:文章有点长,希望客官能慢慢看,对您应该有一些帮助,网上的资料都太乱了。
前言:文章有点长,希望客官能慢慢看,对您应该有一些帮助,网上的资料都太乱了,很不直接,笔者进行了大量的整合和优化,甚则可以自己封装一下以后直接进行使用。
MongoDB:
最像关系型数据库的非关系型数据库。
以二进制json的个数存储——BSON
支持的数据类型:
String 、对象id 、布尔值 、数组 、整数 、 浮点数(默认) 、null值 、正则表达式 、 代码 、二进制
Mongodb的优点:
高性能:
支持索引
高可用:
高扩展:
其 他:
数据结构灵活,没有固定的列(无模式)
缺点:
对事物的支持不强
mongodb的安装笔者在这里就不说了,网上教程一大堆也很简单,推荐使用docker直接安装,方便好用。
实战使用:
前期准备
导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!--hu tool 工具依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.1</version>
</dependency>
编写配置文件:
spring:
data:
mongodb:
#库名称
database: articledb
host: 127.0.0.1
port: 27017
编写配置类:
package com.juhe.web.config;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author
* @date 2020/11/6 17:28
*/
@Configuration
public class MongoConfig {
//获取配置文件中数据库信息
@Value("${spring.data.mongodb.database}")
String db;
//GridFSBucket用于打开下载流
@Bean
public GridFSBucket getGridFSBucket(MongoClient mongoClient){
MongoDatabase mongoDatabase = mongoClient.getDatabase(db);
return GridFSBuckets.create(mongoDatabase);
}
}
创建工具类:
package com.liuh.commom.utils;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @author
* @date 2020/12/9 15:29
*/
public class FileUtils {
/**
* @param response 响应
* @param fileName 文件名称
* @param contentType 文件类型
* @param content 文件内容
* @throws IOException
*/
public static void downloadFile(HttpServletResponse response, String fileName, String c