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 分钟