- Mybatis 是一个半自动化的持久层框架。
- JDBC:
- SQL 夹在 Java 代码里面,耦合度高导致硬编码内伤。
- 维护不易且实际开发需求中 SQL 是有变化的,频繁修改的情况多见。
- Hibernate 和 JPA:
- 长难复杂 SQL ,对于 Hibernate 而言处理也不容易。
- 内部自动生产 SQL ,不容易做特殊优化。
- 基于全映射的全自动框架,大量字段的 POJO 进行部分映射比较困难。导致数据库性能的下降。
- 对于开发人员而言,核心 SQL 还是需要自己优化的。
- SQL 和编码分开,功能边界清晰,一个专注于业务,一个专注于数据。