定义:
ORM(Object Relational Mapping) -- 是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:ORM是通过使用描述对象和数据库之间的映射的元数据,将Java程序中的对象 自动持久化到关系数据库中。
本质上就是讲数据从一种形式转换成另外一种形式
Hibernate做什么:
1、就是将对象模型(实体类)的东西存入关系模型中,
2、实体中类对应关系型库中的一个表,
3、实体类中的一个属性会对应关系型数据库表中的一个列
4、实体类的一个实例会对应关系型数据库表中的一条记录。
将对象数据保存到数据库、将数据库数据读入到对象中
OOA---面向对象的分析、面向对象的设计
OOD---设计对象化
OOP---面向对象的开发
阻抗不匹配---例JAVA类中有继承关系,但关系型数据库中不存在这个概念这就是阻抗不匹配。Hibernate可以解决这个问题
Hibernate 存在的原因:
1、解决阻抗不匹配的问题;
2、目前不存在完整的面向对象的数据库(目前都是关系型数据库);
3、JDBC操作数据库很繁琐
4、SQL语句编写并不是面向对象
5、可以在对象和关系表之间建立关联来简化编程
6、O/R Mapping简化编程
7、O/R Mapping跨越数据库平台
Hibernate的优缺点
1、不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效率;
2、因为使用Hibernate只需要操作对象就可以了,所以我们的开发更对象化了;
3、使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作);
4、Hibernate实现了透明持久化:当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,
只是个纯粹的单纯对象—称为POJO对象(最纯粹的对象—这个对象没有继承第三方框架的任何类和实现它的任何接口)
5、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们一般称为轻量级框架
6、Hibernate代码测试方便。
Hibernate使用范围
1.针对某一个对象,简单的将它加载、编辑、修改,且修改只是对单个对象(而不是批量的进行修改),这种情况比较适用;
2.对象之间有着很清晰的关系(例:多个用户属于一个组(多对一)、一个组有多个用户(一对多));
3.聚集性操作:批量性添加、修改时,不适合使用Hibernate(O/映射框架都不适合使用);
4.要求使用数据库中特定的功能时不适合使用,因为Hibernate不使用SQL语句;
转载于:https://www.cnblogs.com/xuzekun/p/7384351.html