数据层解决方案
SpringBoot提供了三种内嵌的数据源对象 , 供开发者选择
- HikariCP (默认的使用技术) : 需要配置对应的属性
- Tomcat提供DataSource
- Commons DBCP
(1)SQL
SpringBoot提供了三种内嵌的数据库供开发者选择 : 这三个数据库都是使用java语言写的 , 可以将管理交给Spring容器管理 , 也就是说 , 在启动Spring的时候 , 能够将这些数据库启动起来 , 可以在内存中启动 , 体量小 , 只有几百k
-
HSQL
-
Derby
-
H2
-
<!--首先导入H2相关的坐标--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
使用这个数据库 , 需要配置开启H2的控制页面显示 :
spring: h2: console: enabled: true #开启控制页面 path: /h2 #控制控制台页面的访问路径
在浏览器上输入 : localhost:8080/h2 , 就会显示这个页面
下面四个值需要在配置文件中配置
-
spring:
h2:
console:
enabled: true
path: /h2
datasource:
url: jdbc:h2:~/test
hikari:
driver-class-name: org.h2.Driver
username: sa
password: 123456
(2)NoSQL
- Redis
- Mongo
- Es
(3)SpringBoot整合Redis:
-
(1)在创建项目的时候 , 选择Redis , 导入对应的依赖 ,
-
(2)在配置文件中设置 Redis的 Host 和 Port (这里加不加都可以 , 默认值就是本机 , port=6379)
-
spring: redis: host: localhost port: 6379
-
(3)注入Redis的template , RedisTemplate
-
@Autowired private RedisTemplate redisTemplate;
使用 :
自动生成的类型 ops = redisTemplate.ops* : //获取各种数据类型操作接口 ops.set("key","value");
注意事项 :
对象名称 | 操作的类型 |
---|---|
RedisTemplate < K , V > | 没有指定类型, 默认操作的是Object类型的 |
StringRedisTemplate | 操作的是字符串类型的数据(Redis中使用的就是字符串 , 所以注入这个对象) |
(4)SpringBoot整合Redis(使用jedis)
-
在pom文件中导入对应的依赖 :
-
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
-
在配置文件中 : 设置使用的技术 :
-
SpringBoot默认使用的是lettuce
-
设置使用jedis操作redis :
-
spring: redis: host: localhost port: 6379 client-type: jedis #选择使用那种技术 :默认的是lettuce , 可以设置为jedis #对lettuce进行配置 lettuce: pool: max-active: 16 #对jedis进行配置 jedis: pool: max-active: 16
-
注意 :
MongoDB:
需求分析:
我们在使用数据库技术的时候 , 我们有这样的需求 :
- 操作结构化的数据 , (使用mysql)
- 同时要追求高的速度 , (使用redis)
但是 , 二者不能同时处理我们的需求 , 这个时候就要使用MongoDB
MongoDB是一个开源的 , 高性能的的, 无模式的文档型数据库 , NoSQL数据库产品中 , 是最像关系型数据库的非关系型数据库
例子 :
数据种类 | 存储位置 | 特征 |
---|---|---|
淘宝用户数据 | 数据库 | 永久性存储 , 修改频度极低 |
游戏装备数据 | 数据库,MongoDB | 永久性存储与临时存储相结合 , 修改频度较高 |
直播数据,打赏数据,粉丝数据 | 数据库,MongoDB | 永久性存储与临时存储相结合 , 修改频度极高 |
物联网数据 | MongoDB | 临时存储 , 修改频度飞速 |
下载安装使用 :
-
windows版Mongodb下载
- https://www.mongodb.com/try/download
-
windows版Mongo安装 :
- 解压缩之后设置数据目录 : 在bin目录同级的目录之下 …\data\db
-
windows版Mongo启动 :
-
服务端启动 : (在bin目录下进入cmd中)
-
mongod --dbpath=..\data\db
-
客户端启动 : (port在启动服务端的时候 , 会显示这个值)
-
mongo --host=127.0.0.1 --port=27017
-
-
使用操作客户端 :
- Robo 3T : (这个是目前使用比较好的客户端软件)
- studio-3T : (这个是MongoDB官方推荐的)
- Navicat旗舰版也支持连接MongoDB
简单操作:
这里的样式虽然和json很像 , 但是这里叫做bson , 和json的书写格式是一样的
这个数据库可以支持无模式存储数据 :
操作 | 语法格式 |
---|---|
添加操作 | db.ceshi.save({name:"sichen"}) , key值可以不用加双引号 , 其中ceshi是文档的名称 |
查询操作 | db.ceshi.find({name:"sichen"}) |
删除操作 | db.ceshi.remove({name:"sichen"}) |
修改操作 | db.ceshi.update({name:"sichen"},{$set:{name:"aisichen"}}) |
SpringBoot整合MongoDB
-
导入MongoDB的starter依赖坐标
-
编写配置文件 :
-
spring: data: mongodb: uri: mongodb://localhost/sichen #只需要配置一个uri即可连接 /后边加的是datasource的名字
"}})
[外链图片转存中…(img-0kDAvG66-1649864153343)]
SpringBoot整合MongoDB
-
导入MongoDB的starter依赖坐标
-
编写配置文件 :
-
spring: data: mongodb: uri: mongodb://localhost/sichen #只需要配置一个uri即可连接 /后边加的是datasource的名字
-
操作 : 注入MongoTemplate对象即可使用mongo的方法进行操作