软件架构-SpringDataJPA

5 篇文章 0 订阅
4 篇文章 0 订阅

Note

SQL的相关用途

SQL是一种数据查询语句现在已经成为国际标准

OLAP-联机分析的数据库

A -> analysis

抖音在用的一个数据库

数据查询速度是MySQL的8倍

DORIS-大规模并行处理数据库

Spark-并行计算框架-在内存中操作数据-同样支持SQL操作

Flink-流式计算处理框架-操纵流数据

ElasticSearch-分布式的数据搜索引擎

OR-Mapping

目的:

在Java中消灭SQL语句, 实现SQL语句的外置化

设计原理

接口: 设计规约 -> 规范和实现进行分离

image-20230320083846022

SpringDataJPA-History

SpringDataJPA是SpringData(顶级项目)下面的一个项目

其下包括了很多常用的工具, 包括Neo4j(图数据库) MongDB(非关系型数据库) ElasticSearch(分布式数据搜索引擎)等, 所以SpringDataJPA的操作实现是较为完善的

JDBC

使用**JDBC Template**通过在mvn.xml中引入两个依赖, 同时在全局配置文件application.properties来配置数据库连接信息

通过在Java中写SQL语句, 使得语句结果向对象绑定, 与此同时再添加一些参数

Hibernate

基于**OR-Mapping**(Object-Relational Mapping对象关系)思想开发的数据库操作框架

  • Hibernate
  • MyBatis - 使用较为广泛, 但相比于Hibernate和SpringDAtaJPA是最不面向对象的一个

都是**基于JDBC**的数据库操作框架

JPA

Java官方为**OR-Mapping操作提供的对象存储规范**, 大部分都是基于Hibernate

SpringDataJPA

SpringData项目的组成部分, 为基于JPA快速方便的实现数据库访问提供支持(包括非关系型数据库)

SpringDataJPA-Operate

JPA Entity类

Entity类是可以自动生成

JPA的Entity类是普通的Java Class。但是这个Java Class有一些特定的标注对应数据库中的实体属性类

主要用的标注(注解)如下:

  • Entity(一个类最上面有一个即可)
  • Table
  • Id(标明是主键)
  • Column
  • CreateTimestamp(记录创建时间)
  • UpdateTimestamp()

Repository

对某个表操作的DAO对象

继承泛型JpaRepository接口, 之后不用写任何CRUD即可work

image-20230320090424206

code-related-instruction

任意一个OR-Mapping都有缓存策略,JpaRepository中有一个flush操作, 就是从缓存中直接清洗入库

命名约定模式

SpringData提供了一种名称规范, 名称就会被解析为Sql语句

Query Methods

依赖注入\反转控制 -> spring特性

Work

从设计数据库 -> 实现接口 -> 数据访问

设计数据库 -> 使用JPA对接数据库然后接入前面的内容

  • E-R图设计
  • 利用开发环境自动生成数据实体对象 -> recording
  • 使用JPA进行数据库操作

代码打包: src / pom.xml / 配置文件

实体关系

课程与知识点之间的对应关系 (一对多 / 多对多)

案例与知识点之间的关系

案例的形态和案例本身(markdown)有关系

知识点和知识点之间的关系(前置和后置 / 依赖关系)

标签与标签组

标签为什么有标签组?

要对分类本身进行分类, 标签是用于对实体进行分类, 标签组用于对标签进行归类

标签与课程 / 知识点之间的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Every DAV inci

小辣鸡一枚,不求打赏啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值