所谓的持久层框架?ORM框架?以及Hibernate和Mybatis区别?
ORM框架?
Object Relational Mapping,对象-关系映射。
项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据。
为什么需要ORM框架?
ORM框架是对象关系映射,那为什么要映射mapping?
因为对象之间可以存在关联和继承关系,但是在数据库中,关系数据无法表达多对多关联和继承关系。(ps:在数据库原理中,会把逻辑上的多对多转换为多个一对关系才能实现)因此,对象和关系(业务实体的两种表现形式)想要映射正确,项目系统一般以中间件的形式,即持久层框架。
Hibernate?
Hibernate是一个开源的对象关系映射框架。
它对jdbc进行了非常轻量级的对象封装,将pojo(普通的Java对象)与数据库表建立映射关系,是一个全自动的ORM框架,甚至自动生成SQL语句,自动执行。
因此,程序员可以随心所有地使用对象编程思维来操纵数据库。
Hibernate特点:
- Hibernate通过修改一个“持久化”对象的属性,从而修改数据库表中对应的记录数据
- 提供线程和进程两个级别的缓存提升应用程序性能
- 有丰富的映射方式将Java对象之间的关系(POJO)转换为数据库表之间的关系
- 屏蔽不同数据库实现之间的差异。在Hibernate中只需通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句
- 非侵入式。Hibernate不要求持久化类实现任何接口或继承任何类,POJO即可
a) 比较Mybatis,Mybatiis最简单安装只需要2个jar包+几个sql映射文件
Mybatis?
Mybatis是一款优秀的持久层框架。
支持定制化SQL、存储过程以及高级映射。
Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
Mybatis可以使用简单的xml或注解来配置和映射原生信息,将接口和JAVA的POJOs映射成数据库的记录
Mybaits特点:
- 简单易学。没有任何第三方依赖,最简单只需要2个jar包+几个sql映射文件,通过文档和源代码,即可比较完全的掌握它的设计思路和实现
- 灵活。不会对应用程序或者数据库的现有设计强加任何影响。Sql写在xml里面,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能。
- 解除sql与程序代码的耦合。通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。
- 提供映射标签,支持对象与数据库的ORM字段关系映射
- 提供对象关系映射标签,支持对象关系组建维护
- 提供xml标签,支持编写动态sql
Uncharacteristic front-end development intern.