1、关于hibernate、JPA与ORM三者的关系:
- ORM可以理解为是一种理念,它代指“对象关系数据库映射”这种数据持久化解决方案理念。
- JPA是一种ORM产品的规范而非ORM产品。它提供了一系列的规范以及一些最高层的接口。所有的面向JPA的ORM产品(比如hibernate等)都必须遵循这些规范和接口。因此所有的遵循JPA规范的ORM框架都可以相互替换。
- hibernate就是一款遵循JPA规范的ORM框架,是一个实实在在的软件。
2、把相应的jar文件放在应用的类加载路径之后,只需要进行两个方面的配置就可以使用Hibernate框架进行数据操作:
- PO: PO=POJO+注解。hibernate的持久化类不需要继承任何基类也不需要实现任何接口,只需要有与数据库表字段对应的属性和相应的get、set方法,再加上给Hibernate框架看的注解即可。
- 配置信息:除PO的注解所包含的信息之外,Hibernate还需要知道诸如:使用哪个数据库、数据库连接池、用户名、密码等等信息。这些信息以单独的配置文件的形式告诉hibernate框架。可以是*.properties文件,也可以是xml文件。xml的话,默认的文件名是hibernate.cfg.xml。在配置文件中要对所有的PO类进行声明。
3、hibernate使用数据源(c3p0)而不是DriverManager来管理数据库连接。数据源使用连接池来管理数据库连接,性能更好。
4、对PO的操作必须在session的管理之下才能同步到数据库。session由SessionFactory产生,SessionFactory是数据库编译后的内存镜像,通常一个应用对应一个SessionFactory。SessionFactory对象由Configure对象生成,Configure对象负责加载配置文件。
5、hibernate框架的体系架构
6、关于hibernate的配置文件
- 一个配置文件就对应一个Configuration实例,执行Configuration实例的configure()方法,就可以加载配置文件;
- Configuration实例产生SessionFactory实例,SessionFactory实例产生Session实例,Session实例又是Transaction的工厂,PO只有在Session的管理之下,才能将用户的持久化操作同步到数据库中去。
- 有三种方式可以实现对hibernate的配置:
(1) xml配置文件,默认的文件名为:hibernate.cfg.xml。
(2) *.properties文件,有一个弊端是不能声明持久化类,持久化类还要通过Configuration实例手动加载。
(3) 不用任何配置文件,先创建一个Configuration实例,然后全部以手动的形式调用Configuration实例的相关方法进行配置。
以上几种方式通常是结合起来使用。 - 配置文件的作用就是,配置数据库方言、数据库驱动、数据库服务别的URL、用户名、密码和连接池相关信息等。
7、关于Hibernate的映射配置
- 将POJO编程PO的三种方式:
(1) 给POJO加注解
(2) JPA2提供的XML配置文件
(3) Hibernate自己的XML配置文件 - 具体的映射配置细节,需要涉及到大量的数据库相关知识细节。