Hibernate 3.1+Tomcat 5.5.X(配置JNDI篇)

preview
需积分: 0 9 下载量 79 浏览量 更新于2008-12-06 收藏 110KB DOC 举报
:“Hibernate 3.1+Tomcat 5.5.X(配置JNDI篇)” :文章介绍了在Tomcat 5.5.X版本中如何配置Hibernate 3.1,特别是关于JNDI(Java Naming and Directory Interface)的设置方法。 :“hibernate”,“tomcat” 【内容】: 在Hibernate 3.1和Tomcat 5.5.X的集成过程中,配置JNDI是关键步骤,因为这涉及到DataSource的管理。在Tomcat 5.5之前,JNDI配置通常在`server.xml`中进行,但现在可以改在应用程序级别的`Context.xml`文件中完成,这样使得配置更加简洁和独立。 1. **配置Context.xml文件** - `Context.xml`文件现在应放置在每个应用程序的`META-INF`目录下,而不是全局的`server.xml`。文件名为`Context.xml`,而非某些资料中提到的特定应用名称。 - 在`Context.xml`中,对于每个需要的DataSource,使用`<Resource>`元素来定义。该元素包含一系列属性,如数据源类型、最大活动连接数、最大空闲连接数、最大等待时间等,并指定数据库连接信息(用户名、密码、驱动类和URL)。 例如: ```xml <Context docBase="C:\Tomcat 5.5\webapps\BasicWeb" workDir="C:\Tomcat 5.5\webapps\BasicWeb"> <Resource name="jdbc/SampleDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sam" password="sam123" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/sampdb?autoRec"/> </Context> ``` 上述配置将创建一个名为`jdbc/SampleDB`的JNDI DataSource入口,Tomcat启动时会自动创建。 2. **JNDI与Hibernate的结合** - Hibernate可以通过JNDI查找并获取DataSource,从而实现与数据库的连接。这种方式提高了应用程序的可移植性,因为DataSource的配置是在服务器端进行的,而不是硬编码在应用中。 - 但值得注意的是,Tomcat的JNDI在启动后变为只读,这意味着在运行时不能动态添加或修改JNDI条目。这意味着所有需要的DataSource应在Tomcat启动前配置好。 3. **事务管理** - Tomcat作为一个轻量级应用服务器,不提供事务管理器。因此,使用Hibernate时,事务管理需要在代码中通过Hibernate的API来处理。 4. **数据库兼容性** - 示例中使用了MySQL作为数据库,通过`driverClassName`指定MySQL的JDBC驱动。在实际项目中,根据数据库选择相应的驱动类。 总结,配置Hibernate 3.1与Tomcat 5.5.X的JNDI主要是通过创建`Context.xml`文件,并在其中定义DataSource资源。这使得数据库连接的配置更为灵活,同时保持了与Tomcat的兼容性。然而,由于Tomcat自身不提供事务管理,开发者需要在代码中处理事务。在迁移或升级到这些新版本时,理解这些变化对于避免配置错误和提高开发效率至关重要。