在向大家详细介绍Hibernate之前,首先让大家了解下Hibernate SessionFactory实例,以后全面介绍Hibernate。
SessionFactory (org.hibernate.SessionFactory)包含已经编译的映射(mappings),是制造session的工厂,可能含有一些可以在各个事务(transaction)之间共享的数据
(1) SessionFactory的缓存
可分为两类:内置缓存和外置缓存。SessionFactory的内置缓存中存放了Hibernate配置信息和映射元数据信息、同时也缓存了Hibernate自动生成的SQL语句等;SessionFactory的外置缓存是一个可配置的缓存插件,在默认情况下,SessionFactory不会启用这个缓存插件。外置缓存
能存放大量数据库数据的拷贝,外置缓存的物理介质可以是内存或者硬盘。
(2) 只有一个数据存储源,只需创建一个SessionFactory。SessionFactory就是个重量级对象,如果应用只有一个数据存储源,只需创建一个Hibernate SessionFactory实例,因为随意地创建Hibernate SessionFactory实例会占用大量内存空间。但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory。
(3) Configuration的其他用法
Configuration的configure ()方法还支持带参数的访问方式,你可以指定hbm.xml文件的位置,而不是使用默认的classpath
下面的hibernate.cfg.xml这种方式,例如:
- Configuration cfg = new Configuration().configure("myexample.xml");
【编辑推荐】