1.Hibernate的依赖被分成了几个逻辑模块,他们分别是:
*Hibernate-core,Hiberante的主要模块,它定义了ORM的相关特性,以及一些集成接口SPI(Serial Peripheral Interface, 串行外设接口)的API。
*hibernate-envers,包含了hibernate 的历史实体版本特性。
*hibernate-spatial, hibernate的空间数据类型支持。
*hibernate-osgi, hibernate对OSGI(open service gateway initiative,开放服务网关协议)的支持。
*hibernate-agroal, 集成agroal(好像是一个迁移代码的库)连接池库到hibernate中。
*hiberante-c3p0,集成了c3p0(提供数据源实现)连接池库。
*hibernate-hikaricp, 集成了hikariCP(提供高效数据源实现)连接池库。
*hiberante-vibur,集成了Vibur DBCP连接池实现。
*hiberante-proxool,集成了proxool连接池库。
*hibernate-jcache,集成了jcache缓存框架,它能够使得任何复杂的缓存实现成为二级缓存。
*hibernate-encache,集成了encache缓存库作为hibernate的二级缓存。
2.hibernate的使用总览:
(1).启动一个hibernate的 SessionFactory。
(2).使用Hibernate的映射文件(hbm.xml)去提供所有的映射信息。
(3).使用hibernate的本地api完成相应的操作。
3.hibernate的总体配置:
hibernate.cfg.xml定义了Hibernate的配置信息。 默认情况下,使用了H2内存数据库。
这个配置文件中,主要包括如下的一些内容:
*用于构建数据库连接池的相关配置。
*数据库的方言配置,这样hibernate可以根据具体方言特性转换SQL。(数据库方言对应具有特定的 默认数据库引擎)
*hbm2ddl.auto属性,使得Hibernate能够根据数据库自动产生数据库原型。
*配置相关的映射信息。
4.hibernate的实体与映射文件:
实体规范中,实体类需要有getter/setter方法,且要求具有一个无参构造。
映射文件规范中,具有许多的节点,其中有些关键的节点:
1.用于决定加载和存储持久类的元数据节点:
2.id元素,用于定义主键映射。
3.property元素,指示类的持久化属性。
5.hibernate使用练习demo:
6.使用注解可完成上诉的映射功能,它与配置文件是等价的。
7.使用jpa完成相关的hibernate操作:
1.通过jpa的启动一个工厂bean: EntityManagerFactory。
2.使用注解提供映射信息。
3.调用JPA的API方法。
与hibernate规范不同的是,hibernate使用hibernate.cfg.xml来配置信息。 而JPA规范则使用它自身的一个配置文件,通常叫做persistence.xml,该文件定义了jpa规范的信息。在java se环境下,持久层提供者(在这里是hibernate)需要定位到所有的jpa配置文件,通过在META-INF/persistence.xml路径下查找。
JPA的两个关键:
1.sessionFactory = Persistence.createEntityManagerFactory("自己的持久化单元名称");
2.EntityManager entityManager = sessionFactory.createEntityManager();
entityManager.persist(持久化类);