2.3.3 管理环境中的配置

管理环境提供了许多直接的管理功能,诸如安全、连接池、事务管理等等。J2EE服务器就是典型的管理环境。虽然J2EE服务器被经常用来支持EJB,但是你也可以使用除了EJB之外许多其他的服务。

Hibernate经常被用来和Session、消息驱动Bean一起工作,EJB调用Hibernate和调用Servlet,jsp没什么区别。Hibernate可以在管理环境和非管理环境之间方便的移植,Hibernate对我们屏蔽了那些不同的连接和管理策略。

image

图2.4 在管理环境中的Hibernate

应用服务器将数据库连接暴露为一个JNDI资源,所以你需要告诉Hibernate到哪里去寻找DataSource,列表2.5给出了这样的例子。

image

第一行给出了datasource的JNDI名字,这个Datasource必须在服务器的部署描述符中被记录。下一行,你告诉Hibernate使用JTA。接下来是Hibernate需要知道到哪里去查找TransactionManager,虽然J2EE没有提供标准的规范,但是Hibernate提供了对于大多数服务器的支持。最后,就是配置你的数据库方言。

到现在为止我们已经配置完了Hibernate,看起来管理环境和非管理环境的配置没什么不同,但是,如果你需要对于事务进行更详细的配置,那么就需要一些额外的操作。

Java有标准的管理事务的API,JTA。这被称之为容器管理的事务CMT。当使用JTA的时候,JDBC的连接就会完全受它的控制,这点和非管理环境有很大的不同,在非管理环境中,你需要自己去管理事务。

因此在管理和非管理环境中,事务管理使用了不同的方法,由于Hibernate可以在这些环境中方便的移植,所以Hibernate定义的关于事务的API抽象了JTA和JDBC事务策略的不同,关于事务策略的配置需要通过hibernate.connection.factory_class,这个属性可以被配成下面的两个值:

  • net.sf.hibernate.transaction.JDBCTransactionFactory。直接使用JDBC事务,这种情况通常在非管理环境中出现,默认情况下不使用任何策略。
  • net.sf.hibernate.transaction.JTATransactionFactory。则指向JTA,负责容器管理的事务。

如果想更详细的了解Hibernate的API,那么请翻到第五章5.1节,当你使用J2EE服务器的时候,你需要记住亮点:将Hibernate的工厂类设为JTA,指定Transaction Manager。

现在你已经拥有了一个运行的Hibernate的系统了,无论你使用的是管理环境还是非管理环境。创建编译你的持久化类,把Hibernate的类库放到你的classpath上,并且配置好你的Hibernate.properties,创建你的SessionFactory。

下一个部分包含了Hibernate的高级配置,许多配置都是推荐使用的,诸如SQL的日志管理、用XML配置文件来替代Properties文件。当然你也可以略过这一部分,在你需要的时候再回来看也不迟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值