MyBatis 面试
MyBatis 简介
【简单】MyBatis 和 Hibernate 有什么差异?🌟
一句话概括:Hibernate 是全自动的 ORM 框架(能自动生成 SQL),而 MyBatis 是半自动的 ORM 框架(需手动写 SQL 但更灵活)。
| 对比维度 | MyBatis | Hibernate |
|---|---|---|
| SQL 灵活性 | 方便优化 SQL,灵活性高 | 自动生成 SQL,复杂查询需 HQL 或原生 SQL,灵活性较低 |
| 学习成本 | 需熟悉 SQL 和数据库特性,适合有 SQL 经验的团队 | 面向对象思维,适合快速上手 ORM 的团队 |
| 开发效率 | 需手动编写 SQL 和结果映射,适合定制化需求 | 自动化 CRUD,快速开发简单应用 |
| 缓存机制 | 提供一级/二级缓存,需手动管理 | 内置多级缓存(查询缓存、集合缓存),自动化程度高 |
| 数据库兼容性 | SQL 依赖具体数据库语法,移植性较差 | 通过方言(Dialect)适配多数据库,移植性好 |
| 关联映射 | 需手动配置 <association>/<collection> |
自动管理对象关系(如 @OneToMany),配置简洁 |
| 适用场景 | 复杂查询、高性能系统(如金融、电商) | 快速开发、对象模型复杂的应用(如管理后台) |
...大约 9 分钟
