之前有粗略的使用过其他的一些ORM,如IBATIS,TOPLINK,也有过部分性能调优的一些经验.最近闲来无事也就想仔细学习下HIBERNATE的,毕竟有这么热嘛,出去吹牛要是说不熟悉HIBERNATE肯定会被人笑话不是.之前有看过一点HIBERNATE不过没有实践也没太过深入去了解,忘记得差不多.这次卷土重来自然希望能留点印记.好歹也要整个雁过留声人过留名,看书怎么也要留个记号:).
这篇文章主要介绍下HIBERNAGTE的配置.
HIBERNATE_REFERENCE中的配置分两部分:
一:ORM映射配置文件的读取
主要使用的是CONFIGURATION类的ADDRESOURCE,ADDCLASS等API.这个比较简单.略过不谈.
二:关于HIBERNATE的一些特性配置的读取
在文中列出五种方法:
1.ConfigurationsetProperty()
2.Configuration.setProperties()
3.将hibernate.properties文件放置于CLASSPATH的目录.如果你使用WEB项目的话他就应该放在WEB-INF\classes目录下
4.Set System properties using java -Dproperty=value.
5.Include <property> elements in hibernate.cfg.xml
这几种方法中1,2两种方法简单而且类似.不用多讲.
而关于第3,4两种方法可以在此小议一番.
第3种方法设置hibernate.properties是因为当我们使用HIBERNATE的时候他会自动搜索CLASSPATH上的hibernate.properties
文件并将其中的值加到CONFIGURATION的PROPERTIES属性中.这个我们可以通过调试HIBERNATE的内存状况可以发现这一结果.
第4种方法设置System properties,这里提到的方法是在启动JDK的时候带属性参数来实现.其实我们还可以通过其他方法来实现这一
功能,可以我们自行定义一个属性文件比如放置一个Property.properties在CLASSPATH中再使用如下的API载入属性(这一方法在另一篇文章关于读取资源文件中有详细讲述过)
System.getProperties().load(Thread.currentThread().getContextClassLoader().getResourceAsStream("Property.properties"));
这样一来我们就可以将HIBERNATE的属性定义到我们自己的属性文件中,有时候可以避免过多的属性文件.
第5种方法是根据2.Configuration.configure(String resource)这一API来读取XML文件.这种方法应该是我们使用HIBERNATE最常用的方法,我想.
总结下:关于配置的读取HIBERNATE本身提供了不少方法,除了纯的HIBERNATE接口外,还可以通过SYSTEM.properties这一中介进行配置,因为HIBERNATE创建一个Configuration
类的时候会首先读取SYSTEM.PROPERTIES这一系统属性.所以我们可以通过在获取Configuration之前将HIBERNATE的一些属性设置到SYSTEM.PROPERTIES中去就OK了.
关于HIBERNATE有多少属性以及这些属性的的意义可以参考文档资料,也可以去看下Environment这个类就清楚了.
还有就是ECLIPSE为我们设计了很好的HIBERNATE向导.可以为我们生成一部分非常不错的线程安全的代码.值得看看.