一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic的启动脚本文件startWeblogic.cmd和startWLS.cmd,我想大部分人都知道该怎么配置了。 我机器上的有个Hibernate的项目,在D: estoracle目录下,该目录下的结构是: D: estoraclelib 放置hibernate的所有jar包 D: estoraclesrc 放置源代码 D: estoracleclasses 编译好的代码和hibernate的配置文件(hib 在WebLogic服务器上配置Hibernate以使用JNDI(Java Naming and Directory Interface)主要是为了让应用程序能够通过JNDI查找服务来获取SessionFactory对象,从而利用Hibernate进行持久化操作。这个过程涉及几个关键步骤,主要包括配置Hibernate的类路径、设置WebLogic的连接池以及修改Hibernate的配置文件。 1. **配置Hibernate类路径**: 在WebLogic环境中,我们需要确保所有Hibernate相关的jar包(如hibernate2.jar、dom4j-full.jar等)以及Hibernate的配置文件(如hibernate.properties、log4j.properties等)被正确地添加到WebLogic服务器的类路径中。这通常通过修改WebLogic的启动脚本来实现。例如,在`startWeblogic.cmd`或`startWLS.cmd`文件中,我们可以设置环境变量`CLASSPATH`,将这些库和配置文件的路径包含进去。在提供的示例中,作者将Hibernate的jar包放在`D:\estoracle\lib`目录,配置文件位于`D:\estoracle\classes`,并相应地设置了`HIBERNATE_LIB`和`HIBERNATE_CLASSES`环境变量,然后将它们添加到`CLASSPATH`。 2. **配置WebLogic数据库连接池**: 使用WebLogic的连接池可以方便地管理数据库连接,特别是当你需要使用EJB和JTA(Java Transaction API)时。在WebLogic控制台(WebLogic Console)中,需要创建一个新的Connection Pool(连接池)和Transaction Data Source(事务数据源)。定义好数据源后,比如命名为"mypool",这将用于Hibernate的配置。 3. **修改Hibernate配置文件**: 主要是修改`hibernate.properties`,指定使用WebLogic的连接池而不是Hibernate自带的。在这个文件中,你需要添加或修改以下几行配置: - `hibernate.dialect`: 指定所使用的数据库方言,例如对于Oracle数据库,这里是`net.sf.hibernate.dialect.OracleDialect`。 - `hibernate.connection.datasource`: 设置为WebLogic的数据源名称,如`mypool`。 - `hibernate.connection.provider_class`: 指定使用`DatasourceConnectionProvider`作为连接提供者,表示从JNDI查找数据源获取连接。 - `hibernate.session_factory_name`: 为SessionFactory设置JNDI名称,由于WebLogic的要求,这里可能是`.session_factory`,但在代码中查找时应使用`hibernate/session_factory`。 4. **性能优化**: 在`hibernate.properties`中,还可以配置`hibernate.jdbc.fetch_size`和`hibernate.jdbc.batch_size`以优化数据库操作性能。`fetch_size`设置一次查询返回的记录数量,`batch_size`则是在批量操作时一次提交的SQL语句数量。这两个参数的调整可以帮助减少数据库交互次数,提高应用性能。 完成上述步骤后,应用程序可以通过JNDI查找服务获取SessionFactory,并进行ORM操作。在代码中,可以使用如下的方式查找SessionFactory: ```java Context initialContext = new InitialContext(); SessionFactory sessionFactory = (SessionFactory) initialContext.lookup("java:comp/env/hibernate/session_factory"); ``` 这样,WebLogic就能够管理和控制Hibernate的SessionFactory,实现了Hibernate与JNDI的集成。请注意,根据实际的项目结构和WebLogic版本,具体的配置可能会有所不同。在配置过程中,确保遵循WebLogic文档的指导,以避免任何潜在问题。
- 粉丝: 4
- 资源: 931
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0