SpringBoot 学习 step.3数据库
数据库
JPA默认用的是Hibernate。
SpringBoot开发WEB应用时,目前菜用较多的是mybatis+mybatis-plus,还有是springboot-data-jpa,jpa默认使用的是hibernate
jpa更像是mybatis-plus+mybatis的结合体,不过mybatis的插件体系,让mybatis走的是逆向工程,而hibernate是正常的生成工程。
也就是说,hibernate需要的是UML模型,mybatis需要的是数据库模型。
hibernate重业务,mybatis轻业务更轻便
也就是说hibernate的模型是对应着业务出来的,而mybatis就是偏向于专门处理数据库相关的功能。
至于使用的话,可以看看文档,这些内容无非就是定义接口定义类,或者重写类。
数据库事务处理
这个牵涉的数据库理论知识较多,因为只有知道这些理论才能明白。
首先为什么会需要事务,事务用来解决什么问题?遇到 了什么问题?
在实际的业务场景中,需要进行处理并发问题,像两个人同时买东西,如果库存为0,那么就只有一个人能买到,还有数据更新问题。其实这些都是非常常见的数据库数据的更新问题。
数据库四个基本特征:原子性、一致性、隔离性、持久性
在很大程度上,数据库在生产环境中是会可能达到数以万计级别的访问,这时,就会遇到读写锁和丢失更新还有性能问题。
第一,性能是用户直观的感受,没有人在乎你后台做了什么。
第二,读锁与写锁,必然会导致响应速度下降。
第三,丢失更新,用户获取的数据没有得到即时的更新
这些问题需要通过特定的任务手段进行解决,如任务队列,数据库串行化。
数据库的隔离级别就是通过底层来控制SQL脚本的执行和更新问题。隔离级别越高,性能越低。
传播行为
即当前的方法与被调用的方法都会被置于统一的隔离级别。
SpringBoot 学习 step.3数据库的更多相关文章
- springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务
springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...
- SpringBoot学习笔记
SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...
- springboot学习(一)——helloworld
以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给 ...
- SpringBoot学习笔记(2):引入Spring Security
SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: ...
- SpringBoot学习笔记(7):Druid使用心得
SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> ...
- SpringBoot学习笔记(10):使用MongoDB来访问数据
SpringBoot学习笔记(10):使用MongoDB来访问数据 快速开始 本指南将引导您完成使用Spring Data MongoDB构建应用程序的过程,该应用程序将数据存储在MongoDB(基于 ...
- SpringBoot学习笔记(8):事物处理
SpringBoot学习笔记(8):事物处理 快速入门 在传统的JDBC事务代码开发过程中,业务代码只有一部分,大部分都是与JDBC有关的功能代码,比如数据库的获取与关闭以及事务的提交与回滚.大量的t ...
- SpringBoot学习笔记:Redis缓存
SpringBoot学习笔记:Redis缓存 关于Redis Redis是一个使用ANSI C语言编写的免费开源.支持网络.可基于内存亦可以持久化的日志型.键值数据库.其支持多种存储类型,包括Stri ...
- SpringBoot学习笔记:读取配置文件
SpringBoot学习笔记:读取配置文件 配置文件 在以往的项目中,我们主要通过XML文件进行框架配置,业务的相关配置会放在属性文件中,然后通过一个属性读取的工具类来读取配置信息.在SpringBo ...
- SpringBoot学习笔记:单元测试
SpringBoot学习笔记:单元测试 单元测试 单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部 ...
随机推荐
- vue3中的defineProps,watch,computed
在vue3的setup语法糖中,defineProps不需要引入了 <script setup> import { computed } from '@vue/reactivity'; i ...
- 匿名方法、Lambda表达和自定义泛型委托以及Func、Action系统泛型委托
1.匿名方法的概念:一个方法没有具体的名称,而只有关键字delegate.方法参数.方法体.这种方法是匿名方法. 匿名方法的好处:将具体方法和委托直接关联在一起,如果我们基于委托只需要一个方法的时候, ...
- 第2-3-3章 文件处理策略-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
目录 5.2 文件处理策略 5.2.1 FileStrategy 5.2.2 AbstractFileStrategy 5.2.3 LocalServiceImpl 5.2.4 FastDfsServ ...
- Vue3 企业级优雅实战 - 组件库框架 - 6 搭建example环境
该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...
- C温故补缺(十四):内存管理
内存管理 stdlib库中有几个内存管理相关的函数 序号 函数和描述 1 void *calloc(int num, int size);在内存中动态地分配 num 个长度为size 个字节 的连续空 ...
- CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了?
前言 今天,我们很高兴宣布 CAP 发布 7.0 版本正式版,我们在这个版本中带来了大批新特性以及对性能的优化和改进. 自从今年 1月份发布 6.0 版本以来,已经过去了快1年的时间.在过去的将近1年 ...
- day10 集合——队列(Queue)、Vector & Map集合常用方法 & HashMap的实现原理&二叉树&二叉查找树AVL树&红黑树
集合--List 栈先进后出 队列 先进先出 Queue队列 方法 Queue<Integer> q = new LinkedList<>(); //添加元素 q.add(2) ...
- http 缓存 笔记
http 缓存,有时候静态资源没更新的情况下,不需要每次都去服务器获取,减少资源的请求. Http 报文中与缓存相关的首部字段 1. 通用首部字段(就是请求报文和响应报文都能用上的字段) 2. 请求首 ...
- [Webcast]Silverlight探秘系列课程
Silverlight探秘系列课程(1):创建第一个Silverlight应用视频:http://download.microsoft.com/download/B/7/1/B71CA32C-163D ...
- java中的动态绑定机制
本文主要讲述java中的动态绑定机制. 老韩ppt关于动态绑定机制: 示例代码如下: public class DynamicBinding { public static void main(Str ...