埋个 SQL,多跑几遍,最终把查询结局给藏起来 别再拿那一堆“起初、其次、最终”去背诵 MyBatis 的原理了,那种教科书式的拆解听着像上课,听着让人想眨眼。
实际上,MyBatis 写出来的 SQL 里,藏着那么多玄乎的注解,它们的目标实际上就两个:让数据库跑得更少,要么让程序自己拍板如何跑。 想象一下你写自动化测试。你没法管住脚本里每轮跑 SQL 的先后顺序,但你却能随意指定“先查 A 表,再查 B 表”。MyBatis 的 `
`, ``, `` 这些标签,本质上就是在你看不见的代码层面上,给执行盘算加了个开关。
不用管 SQL 数据库里如何跑,它只认这些标签里的指令。 比如一个典型的场景,你在 Controller 里写了一个 `@GetMapping("/test/{id}")`,映射了 `/test/123` 这个接口。你的 XML 里写道:查询参数是 `{id}`,但在 `