Hibernate 3.1+Tomcat 5.5.X(配置JNDI篇)
需积分: 0 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自身不提供事务管理,开发者需要在代码中处理事务。在迁移或升级到这些新版本时,理解这些变化对于避免配置错误和提高开发效率至关重要。
muguangkui
- 粉丝: 14
- 资源: 319