输入标题、正文或标签,查找知识。

最近文档

软件工程 / 构建发布与运行构建环境与持续集成:为什么你电脑上能跑还不够你把收藏功能交给同事,他安装以后却打不开。原来你电脑用的是一个 Node 版本,他用另一个;你本地还有没提交的文件。要交付软件,不只需要源代码,还要让别人按照明确步骤得到能运行的结果。软件工程 / 构建发布与运行部署、发布、回滚与观察:把功能交到用户手里代码已经合并,收藏按钮却没出现在网站上。或者网站更新了,点击时提示找不到数据表。交付涉及代码、配置、数据和流量,不能只用“构建成功”判断完成。本章按一次小发布看这些环节怎样配合。语言基础 / TypeScript跨语言对照TypeScript 独有能力与缺失能力清单这一章适合在学完基础后回查:某个能力是 TypeScript 自己提供的,还是来自 JavaScript、浏览器、Node 或第三方库?先把来源认清,再讨论它擅长什么、缺少什么,就不会把“语言没有内置”误解成“整个生态都做不到”。语言基础语言基础学习路线:以 TypeScript 建立可迁移的编程模型学 TypeScript 时,你会同时遇到 JavaScript 的运行规则和 TypeScript 的类型规则。先把这两件事分清,很多报错就好理解了。按顺序做完前面的练习,再读跨语言对照;对照章节用于解释差异,不要求你同时学会五门语言。后端知识 / 身份权限与安全认证、授权与多租户:登录成功只是第一步用户把地址里的订单号从 42 改成 43,居然看到了别人订单。这不是登录失效,而是资源授权缺失。后端要分别确认调用者是谁,以及这个调用者是否能对这份数据执行当前操作。
1 / 5 · 构建环境与持续集成:为什么你电脑上能跑还不够
↑↓ 浏览 Enter 打开Esc 关闭
Damnatiox
知识文件夹

数据访问与事务

现代 Java Backend Engineering 学习路线:数据访问与事务

0 子目录7 文档
数据访问与事务:连接与 SQL、MyBatis 映射、JPA 实体模型、事务边界、数据迁移、选型与验证

CHAPTER OVERVIEW · 章节概览

先理解连接和 SQL 执行,再比较映射与实体模型;事务边界、迁移和技术选择必须围绕实际业务。

本章学习路线

箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。

flowchart LR N0["01 连接与 SQL"] N1["02 MyBatis 映射"] N2["03 JPA 实体模型"] N3["04 事务边界"] N4["05 数据迁移"] N5["06 选型与验证"] N0 --> N1 --> N2 --> N3 --> N4 --> N5

按顺序学习

7
数据访问与 ORM:从零开始的阶段导学数据库访问框架省掉了不少重复代码,但连接、SQL 和事务依然存在。这一阶段沿着一次读写操作,比较 MyBatis 与 JPA 分别接管了什么。遇到性能或一致性问题时,仍要能回到实际 SQL 和事务上检查。MyBatis:映射、动态 SQL、插件与工程边界你已经知道想执行哪条 SQL,只是不想反复写参数绑定和结果集转换,MyBatis 就适合从这里理解。先看一个 Mapper 方法怎样对应 SQL,再学动态条件和缓存,始终保留查看实际语句的习惯。JPA、Hibernate 与 Spring Data:实体状态、映射和查询调用 save 或修改实体字段时,数据库未必就在那一行立刻更新。理解实体状态、持久化上下文和 flush,才能读懂 JPA 程序。下面也会区分规范、Hibernate 实现和 Spring Data 仓库,避免把三者混叫成一个东西。连接池、事务、数据库迁移与数据访问技术决策即使 SQL 写对了,连接耗尽、事务过长或迁移顺序错误,仍会让数据访问出问题。本章把这些容易被框架教程略过的部分串起来:先确定连接和事务怎样使用,再安排结构变更与运行观察。MyBatis-Plus 工程实践MyBatis-Plus 可以减少常见增删改查的样板代码,但生成 SQL 仍然要在真实表和索引上执行。先用它完成简单查询,再查看实际语句;遇到复杂条件时,回到显式 SQL 并不代表使用失败。JDBC vs MyBatis vs JPA:按问题选择数据访问方式如果正在为项目选择数据访问方式,不妨先看几个实际需求:查询有多复杂,是否需要管理对象关系,团队是否愿意直接维护 SQL?下面比较 JDBC、MyBatis 和 JPA 的取舍,而不是按抽象层越高越好来排序。数据访问与 ORM推荐阅读如果 JDBC 的连接、参数和结果集还不熟,先回顾它们,再读 Mapper 或 ORM 文档。框架用法会更容易理解,也更容易解释为什么某次查询变多、某个事务没有按预期提交。