SpringBoot-数据层操作

本文介绍了SpringBoot中内嵌的H2、Derby和HSQL数据库选择,以及如何配置和使用H2数据库控制面板。随后重点讲解了SpringBoot整合Redis和MongoDB的方法,包括依赖引入、配置及关键操作示例。
摘要由CSDN通过智能技术生成

数据层解决方案

image-20220405163351932

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

  • HikariCP (默认的使用技术) : 需要配置对应的属性
    • image-20220405152329037
  • 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 , 就会显示这个页面

    image-20220405160406757

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

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

    image-20220405174850954


注意事项 :

对象名称操作的类型
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
      

注意 :

image-20220406151540899


MongoDB:

需求分析:

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

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

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


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


例子 :

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

下载安装使用 :

  • windows版Mongodb下载

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

    • 解压缩之后设置数据目录 : 在bin目录同级的目录之下 …\data\db
    • image-20220406211326015
    • image-20220406211346208
  • 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的书写格式是一样的

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

image-20220406155648363

操作语法格式
添加操作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"}})

image-20220406190820380


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值