这份教程讨论如何在apache tomcat servlet容器中为web程序安装hibernate 2.1.hibernate在大多数主流j2ee应用服务器 的受管理环境中都可以良好运作,也可以作为独立应用程序运行.在本例中的示例数据库系统是postgresql 7.3,当然也可以 很容易的换成hibernate 支持的其它16种数据库之一.
首先,把数据库需要的jdbc驱动拷贝到全局类路径.这是tomcat附带的dbcp连接池软件所要求的.对于本教程来说,把pg73jdbc3.jar库文件(对应postgresql 7.3与jdk 1.4)到全局类装载器路径去.如果你使用一个不同的数据库,拷贝相应的jdbc 驱动). 【程序编程相关:如何更改表的字段名?】
第一步是拷贝所有需要的运行库到tomcat去.在这篇教程中,我们使用一个单独的web程序(webapps/quickstart).我们要考虑全局库文件搜索路径(tomcat/common/lib)与本web应用程序上下文的类装载器搜索路径(对于jar来说是webapps/quickstart/web-inf/lib,对于class文件来说是webapps/quickstart/web-inf/classes).我们把这两个类装载器级别分别称为全局类路径(global classpath)与上下文类路径(context classpath). 【推荐阅读:Hibernate的批量删除的效率分析 】
hibernate本身打包成一个jar库.hibernate2.jar文件要与你应用程序的其他库文件一起放在上下文类路径中.在运行时,hibernate还需要一些第三方库,它们在hibernate发行包的lib/目录下.参见table 1.1.把你需要的第三方库文件也拷贝到上下文类路径去. 【扩展信息:为什么用ROUND四舍五入总是无法得到正】
不要拷贝任何其他东西到全局类装载器去.否则你可能在一些工具上遇到麻烦,比如log4j, commons-logging等. 记得要使用每个web应用程序自己的上下文类路径,就是说把你自己的类库拷贝到web-inf/lib下去,把配置文件configuration/property拷贝到web-inf/classes下面去.这两个目录默认都是上下文类路径级别的.
要为tomcat与hibernate都配置数据库连接.也就是说tomcat要负责提供jdbc连接池,hibernate通过jndi来请求这些连接.tomcat把连接池绑定到jndi.
table 1.1. hibernate 第三方库 库 描述 dom4j (必需) hibernate在解析xml配置与xml映射元文件时需要使用dom4j. cglib (必需) hibernate在运行时使用这个代码生成库强化类(与java反射机制联合使用).... 下一页