配置类在Hibernate运行时候执行。
他们通常载入 mapping 文件和为这些 mapping 文件创建 SessionFactory。
有 3 种方法创建和初始化配置对象。
第一个方法是载入属性文件和在hibernate.cfg.xml 定义的mapping 文件并创建SessionFactory:Configuration cfg =new Configuration();
SessionFactory factory =cfg.configure().buildSessionFactory();
configure() 方法告诉 Hibernate来载入 hibernate.cfg.xml 文件。
Configuration 类可以同编程来载入 mapping 文档。 Configuration cfg =new Configuration();
cfg.addFile("com/manning/hq/ch03/Event.hbm.xml");
另外一种载入的方法是在持久类中进行载入。
因为Hibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数。幸运的是,大部分都已经有默认值了,Hibernate发行包中还附带有示例的hibernate.properties文件,它演示了一些可变的参数。
可编程配置方式
net.sf.hibernate.cfg.Configuration的一个实例代表了应用程序中所有的Java类到关系数据库的映射的集合。这些映射是从一些XML映射文件中编译得来的。你可以得到一个Configuration的实例,直接实例化它即可。下面有一个例子,用来从两个XML配置文件中的映射中初始化:Configuration cfg = new Configuration()
.addFile("Vertex.hbm.xml")
.addFile("Edge.hbm.xml");
另外一个(或许是更好的)方法是让Hibernate自行用getResourceAsStream()来装载映射文件。Configuration cfg = new Configuration()
.addClass(eg.Vertex.class)
.addClass(eg.Edge.class);
Hibernate 就会在classpath中寻找叫做/eg/Vertex.hbm.xml、/eg/Edge.hbm.xml的映射文件。这种方法取消了所有对文件名的硬编码。
Configuration也可以指定一些可选的配置项。Properties props = new Properties();
...
Configuration cfg = new Configuration()
.addClass(eg.Vertex.class)
.addClass(eg.Edge.class)
.setProperties(props);
Configuration是仅在配置期使用的对象,从第一个SessionFactory开始建立的时候,它就失效了。