SpringBoot-数据层操作

数据层解决方案

SpringBoot-数据层操作_第1张图片

SpringBoot提供了三种内嵌的数据源对象 , 供开发者选择

  • HikariCP (默认的使用技术) : 需要配置对应的属性
    • SpringBoot-数据层操作_第2张图片
  • Tomcat提供DataSource
  • Commons DBCP

(1)SQL

SpringBoot提供了三种内嵌的数据库供开发者选择 : 这三个数据库都是使用java语言写的 , 可以将管理交给Spring容器管理 , 也就是说 , 在启动Spring的时候 , 能够将这些数据库启动起来 , 可以在内存中启动 , 体量小 , 只有几百k

  • HSQL

  • Derby

  • H2

    • 
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-data-jpaartifactId>
      dependency>
      <dependency>
          <groupId>com.h2databasegroupId>
          <artifactId>h2artifactId>
          <scope>runtimescope>
      dependency>
      

    使用这个数据库 , 需要配置开启H2的控制页面显示 :

    spring:
      h2:
        console:
          enabled: true #开启控制页面
          path: /h2  #控制控制台页面的访问路径
    

    在浏览器上输入 : localhost:8080/h2 , 就会显示这个页面

    SpringBoot-数据层操作_第3张图片

    下面四个值需要在配置文件中配置

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");
    

    SpringBoot-数据层操作_第4张图片


注意事项 :

对象名称 操作的类型
RedisTemplate < K , V > 没有指定类型, 默认操作的是Object类型的
StringRedisTemplate 操作的是字符串类型的数据(Redis中使用的就是字符串 , 所以注入这个对象)

(4)SpringBoot整合Redis(使用jedis)

  • 在pom文件中导入对应的依赖 :

  • <dependency>
        <groupId>redis.clientsgroupId>
        <artifactId>jedisartifactId>
    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
      

注意 :

SpringBoot-数据层操作_第5张图片


MongoDB:

需求分析:

我们在使用数据库技术的时候 , 我们有这样的需求 :

  • 操作结构化的数据 , (使用mysql)
  • 同时要追求高的速度 , (使用redis)

但是 , 二者不能同时处理我们的需求 , 这个时候就要使用MongoDB


MongoDB是一个开源的 , 高性能的的, 无模式的文档型数据库 , NoSQL数据库产品中 , 是最像关系型数据库的非关系型数据库


例子 :

数据种类 存储位置 特征
淘宝用户数据 数据库 永久性存储 , 修改频度极低
游戏装备数据 数据库,MongoDB 永久性存储与临时存储相结合 , 修改频度较高
直播数据,打赏数据,粉丝数据 数据库,MongoDB 永久性存储与临时存储相结合 , 修改频度极高
物联网数据 MongoDB 临时存储 , 修改频度飞速

下载安装使用 :

  • windows版Mongodb下载

    • https://www.mongodb.com/try/download
  • windows版Mongo安装 :

    • 解压缩之后设置数据目录 : 在bin目录同级的目录之下 …\data\db
    • SpringBoot-数据层操作_第6张图片
    • SpringBoot-数据层操作_第7张图片
  • 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的书写格式是一样的

这个数据库可以支持无模式存储数据 :

SpringBoot-数据层操作_第8张图片

操作 语法格式
添加操作 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-数据层操作_第9张图片


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的方法进行操作

你可能感兴趣的:(SpringBoot,SpringBoot)