Orm和hibernate简介
ORM(Object-RelativeDatabase-Mapping):一种框架,在java对象与数据库之间建立某种映射,以实现直接存取java对象。通过配置文件或者使用java注解把java对象映射到数据库上,自动生成SQL语句并执行。
实现原理:
存取:POJO(简单java对象)→各种属性→SQL语句→数据库
读取:SQL语句→POJO各种属性→POJO
Hibernate:最成功的ORM框架。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
特性:
1.使用简单,功能强大,对市面上所有数据库都有良好支持
2.能直接操作POJO,一种轻量级框架,不依赖任何容器
Hibernate简单工作原理
1.传统:SQL的insert、update、delete等语句由开发者在DAO层编写
Hibernate:充当了DAO层,根据POJO实体类的映射配置自动生成SQL语句。SQL语句动态生成,由实体类配置决定。
Hibernate底层由JDBC实现
2.读取Hibernate 的配置信息-〉创建SessionFactory
1)创建Configeration类的实例:
它的构造方法:将配置信息(Hibernate config.xml)读入到内存。
一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。
2)创建SessionFactory实例:
把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。
SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。
3)调用SessionFactory创建Session的方法:
1】用户自行提供JDBC连接。
Connectioncon=dataSource.getConnection();
Session s=sessionFactory.openSession(con);
2】让SessionFactory提供连接
Sessions=sessionFactory.openSession();
4)通过Session 接口提供的各种方法来操纵数据库访问。
Hibernate实体关系映射:
数据库中的表是有关联的,两个表之间可以通过外键关联。如果把表抽象为实体类,这些关系可以抽象为实体之间的一对多(@OneToMany)、多对一(@ManyToOne) 、一对一(@OneToOne) 、多对多关系(@ManyToMany) 。Hibernate能处理这些复杂关系,前提是要正确配置这些关系。