什么是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、缓存使用不当,容易产生脏数据。