Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析
嵌入式服务器
Spring Boot 的嵌入式服务器功能是一项方便而强大的功能,它允许你在应用程序中直接运行 Web 服务器,无需将其部署到单独的独立 Web 服务器中。这使得开发、测试和部署 Web 应用程序变得容易,而且它还是轻量级的、易于启动和停止的,易于配置。
Hibernate
Hibernate 是一个 Java 框架,它提供了对象关系映射到面向对象模型到关系数据库。这意味着 Hibernate 提供了从 Java 类到数据库表的映射,同时还提供了数据查询和检索功能。
事务
事务只是表示工作单元。在这种情况下,如果一步失败了,整个事务就会失败(这被称为原子性)。一个事务可以由 ACID 属性(原子性、一致性、隔离性和持久性) 来描述。
在 Hibernate 框架中,我们有 Transaction 接口来定义工作单元。它对事务实现(JTA、JDBC)进行了抽象。
关系
使用 Hibernate,如果我们想在两个实体之间建立关系,则表之间必须存在外键关系,我们称之为引用完整性。拥有对象之间的关系的主要优点是,我们可以在一个对象上执行操作,然后将相同的操作传递到数据库中的另一个对象上。
以下是 Hibernate 中可以在对象之间拥有的四种类型的关系。
- 一对一
- 多对一
- 多对多
- 一对多
实体生命周期
在 Hibernate 中,我们可以创建一个实体的新对象并将其存储到数据库中,也可以从数据库中获取实体的现有数据。这些实体与生命周期相关,每个实体对象都通过生命周期的各个阶段。
Hibernate 生命周期主要有四种状态:
- 瞬态状态
- 持久状态
- 分离状态
- 已移除状态
Spring Data
Spring Data 是一个用于在 Spring 应用程序中访问数据的项目集合。它提供了一个通用的接口,用于处理各种类型的数据存储,包括关系数据库、NoSQL 数据存储和基于云的数据服务。Spring Data 的目标是通过在不同的数据存储和数据访问技术之间提供一致的高级存储库编程模型,简化 Spring 应用程序中的数据访问。这可以帮助开发人员编写更少的样板代码并专注于业务逻辑,同时仍能利用底层数据存储的全部功能。
Spring Data JPA
Spring Data JPA 是一个库,它使得在 Spring 应用程序中实现基于 Java Persistence API (JPA) 的存储库(一个“DAO”缩写)变得容易。它是在 JPA 之上的一个抽象,允许您使用更简单和更方便的 API 执行对数据库的 CRUD(创建、读取、更新、删除)操作。Spring Data JPA 还提供了其他功能,如分页、动态查询生成等。
Spring Data Mongodb
Spring Data for MongoDB 是 Spring Data 项目的一部分,旨在为各种新数据存储库提供一个熟悉且一致的基于 Spring 的编程模型,同时保留库特定的功能和能力。
Spring Data MongoDB 项目提供了与 MongoDB 文档数据库的集成。Spring Data MongoDB 的关键功能领域是提供一个 POJO 中心模型,用于与 MongoDB DBCollection 交互,并轻松编写存储库风格的数据访问层。
Spring Data JDBC
Spring Data JDBC 是 Spring Data 项目的一部分,它提供了使用 JDBC(Java Database Connectivity)与关系型数据库进行交互的支持。它旨在提供一种简单且一致的编程模型,以使用 JDBC 与数据库进行交互,同时仍然允许在需要时使用 JDBC 的全部功能。Spring Data JDBC 提供了一组抽象和实用程序类,简化了与数据库的工作,例如用于执行 SQL 查询的简单模板类,用于实现数据访问对象(DAO)的存储库抽象,以及支持查询结果的分页和排序。它适用于 Java 和 Kotlin。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析的更多相关文章
- Spring Boot 嵌入式Web容器
目录 前言 1.起源 2.容器启动流程解析 2.1.获取应用类型 2.2.容器启动流程 3.加载 Web 容器工厂 4.总结 前言 最近在学习Spring Boot相关的课程,过程中以 ...
- Spring Boot的前世今生以及它和Spring Cloud的关系详解。
要了解Spring Boot的发展背景,还得从2004年Spring Framework1.0版本发布开始说起,不过大家都是从开始学习Java就使用Spring Framework了,所以就不做过多展 ...
- Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中 ...
- spring boot 2.0(一)权威发布spring boot2.0
Spring Boot2.0.0.RELEASE正式发布,在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring ...
- 【转】Spring Boot干货系列:(三)启动原理解析
前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起一步步揭开Sprin ...
- Spring Boot干货系列:(三)启动原理解析
Spring Boot干货系列:(三)启动原理解析 2017-03-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说 ...
- 59. Spring Boot Validator校验【从零开始学Spring Boot】
大纲: (1) 入门例子: (2) 国际化: (3) 在代码中添加错误信息: (1) 入门例子: Validator主要是校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数 ...
- (6)Spring Boot datasource - mysql【从零开始学Spring Boot】
在任何一个平台都逃离不了数据库的操作,那么在spring boot中怎么接入数据库呢? 很简单,我们需要在application.properties进行配置一下,application.proper ...
- Spring Boot学习总结(1)——Spring Boot入门
摘要:Spring Boots是为了帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用. 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boo ...
- # 曹工说Spring Boot源码(10)-- Spring解析xml文件,到底从中得到了什么(context:annotation-config 解析)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
随机推荐
- 谈一谈如何使用etcd中的事务
本文内容来源于自己学习时所做的记录,主要来源于文章最后的参考链接,如有侵权,请联系删除,谢谢! etcd 是一个 key/value 类型的数据库.既然我们需要存储数据,必然会面临这样一个需求,即希望 ...
- CentOS6.8下yum安装Nginx
在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vim nginx.repo 填写如下内容: [nginx] name=n ...
- UG474
为了对工程的资源利用率进行优化,我们首先需要知道当前工程对资源的利用率情况.在Vivado下,我们可以查看工程的资源利用率情况,在下面这张图中,其罗列出了整个工程所使用的资源情况.首先,下面我们需要一 ...
- RocketMQ(4) 消息的消费
消费者从Broker中获取消息的方式有两种:pull拉取方式和push推动方式.消费者组对于消息消费的模 式又分为两种:集群消费Clustering和广播消费Broadcasting. 1. 获取消息 ...
- Java //9*9乘法表 乘法口诀
1 //9*9乘法表 2 3 for(int i =1;i<10;i++) 4 { 5 for(int j = 1;j <=i;j++) 6 { 7 System.out.print(i+ ...
- 用几张图实战讲解MySQL主从复制
本文分享自华为云社区<结合实战,我为MySQL主从复制总结了几张图!>,作者: 冰 河. MySQL官方文档 MySQL 主从复制官方文档链接地址如下所示: http://dev.mysq ...
- CPNtools协议建模安全分析(一)
本文根据最近整理的CPNtools论文和CPNtools官网上的说明,以及参照了乌克兰敖德萨 ---国家电信研究院运输和通信部关于 电信系统协议仿真关于CPNtools的学生讲义.基于此和和自己的 ...
- java基础 韩顺平老师的 面向对象(基础) 自己记的部分笔记
194,对象内存布局 基本数据类型放在堆里面,字符串类型放在方法区. 栈:一般存放基本数据类型(局部变量) 堆:存放对象(Cat cat,数组等) 方法区:常量池(常量,比如字符串),类加载信息 19 ...
- 使用 Docker 部署 Next Terminal 轻量级堡垒机
1)Next Terminal 介绍 官网:https://next-terminal.typesafe.cn/ GitHub:https://github.com/dushixiang/next-t ...
- JS3-高级事件
获取事件和处理事件的第二种方式:事件监听 如何获取和处理鼠标与键盘的基本事件? 事件监听方式 eventTarget.addEventListener(type,listener[,useCaptur ...