什么是 JPA
JPA 是一种标准,它简化了现有长久化的开发,并且充沛排汇了 Hibernate、TopLInk、JDO 等框架。SpringData JPA 是全自动框架,不须要本人写 sql, 当然也能够本人写 sql 实现。而主动生成 sql 这点是长处,也是毛病,因为生成的 sql 可读性差,而且一些业务比方执行逻辑删除等还是须要本人来实现 sql。
什么是 Mybatis
Mybatis 是一种半自动的 ORM 框架,它简略易上手,没有第三方依赖,反对对象与数据库的 ORM 关系映射,将 sql 代码与业务代码拆散,使得开发人员能够更自若的写出高效的 sql,不过反过来说不像 SpringData JPA 这种全自动的 ORM 框架,它须要本人实现 sql 语句,对开发人员的 sql 编写能力要求高,尽管将 sql 代码写在 xml 文件里不便了批改和编写,可这同时也升高了可读性。
JPA 的优缺点
长处
1、可长久化 Java 对象。JPA 可能间接长久化简单的 Java 对象,并可能应用 JPQL 语言进行简单的查问。JPQL 是 JPA 专用的查询语言,是相似于 SQL 的面向对象的查询语言。
2、应用简略。JPA 应用正文(Annotation)定义 Java 对象与关系数据库之间的映射,而传统的 ORM 多应用 xml 配置文件。JPA 应用起来比 ORM 要不便。应用 JPA 不必关注底层应用什么数据库。
3、标准标准化。JPA 是 JCP 组织公布的,是 Java 官网规定的对立的 API。java 培训目前曾经有多种框架实现 JPA 规范。应用了 JPA 的零碎能够自由选择遵循 JPA 规范的框架,并可能自在更换。
4、事务性、大数据量。JPA 底层应用关系数据库进行存储,因而具备关系数据库的特点,例如事务性、数据完整性、并发拜访、大数据量等。
5、与其余长久化技术相比,JPA 有很大的技术劣势。表列出了 JPA 与其余长久化技术的比拟。
毛病
因为 sql 语句是主动生成的可读性是比拟差的, 对于一些高级业务或者简单的查问都须要本人来实现 sql
Mybatis 的优缺点
长处
上手容易、提供 xml 标签、反对动静 SQL 编程,Mapper 映射,反对对象与数据库的 ORM 字段关系映射
毛病
1、SQL 语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写 SQL 语句的功底有肯定要求。
2、SQL 语句依赖于数据库,导致数据库移植性差,不能随便更换数据库
3、当心愿对象的长久化对应用程序齐全通明是,不适宜应用 Mybatis
4、当数据库有移植需要或须要反对多种数据库时,不适宜应用 Mybatis
5、缓存使用不当,容易产生脏数据。