1.Mybatis
Mybatis是⼀种典型的半⾃动的 ORM 框架,所谓的半⾃动,是因为还需要⼿动的写 SQL 语句,
再由框架根据 SQL 及 传⼊数据来组装为要执⾏的 SQL。其优点为:
- 因为由程序员⾃⼰写 SQL,相对来说学习⻔槛更低,更容易⼊⻔。
- 更⽅便做 SQL的性能优化及维护。
- 对关系型数据库的模型要求不⾼,这样在做数据库模型调整时,影响不会太⼤。适合软件需求变更⽐较频繁的系统,因此国内系统⼤部分都是使⽤如 Mybatis 这样的半⾃动 ORM 框架。
其缺陷为:
不能跨数据库,因为写的 SQL 可能存在某数据库特有的语法或关键词.
2.Hibernate
Hibernate是⼀种典型的全⾃动 ORM 框架,所谓的全⾃动,是 SQL 语句都不⽤在编写,基于框
架的 API,可以将对象⾃动的组装为要执⾏的 SQL 语句。其优点为:
- 全⾃动 ORM 框架,⾃动的组装为 SQL 语句。
- 可以跨数据库,框架提供了多套主流数据库的 SQL ⽣成规则
其缺点为:
- 学习⻔槛更⾼,要学习框架 API 与 SQL 之间的转换关系
- 对数据库模型依赖⾮常⼤,在软件需求变更频繁的系统中,会导致⾮常难以调整及维护。可能数据库中随便改⼀个表或字段的定义,Java代码中要修改⼏⼗处。
- 很难定位问题,也很难进⾏性能优化:需要精通框架,对数据库模型设计也⾮常熟悉。