GWT的Java数据库抽象(或者:Hibernate是一个不错的选择吗?)

时间:2011-04-24 10:09:21

标签: java hibernate postgresql gwt jdbc

我们目前正在使用Google Web Toolkit开发某种企业资源管理系统。我们的主要目标是保持系统的可扩展性,模块化和低成本。我们选择PostgreSQL作为我们的数据库,因为Oracle和MySQL太贵了。但是我们对Oracle有很多经验。我们还需要为我们的数据库进行某种复制。

服务器后端将用Java编写。

我们现在正在寻找一个好的数据库抽象。我们考虑过Hibernate,但是虽然可以将它与GWT一起使用,但我们不知道它是否是最好的选择。任何人都可以给出一些指示吗?还有其他好的框架可供使用吗?也许我们会用JDBC编写所有代码,因为它快速且可扩展,但这意味着更高的开发成本。但我们怀疑大数据表,我们没有hibernate的经验。

Hibernate的优点(我能想到):

  • 快速发展
  • 良好的文档
  • 稳定
  • 积极开发(我们不想使用仅由一个人开发的框架)
  • 支持是负担得起的(当一切都出错时)
  • 当我们有钱时,我们可以切换到Oracle(大专业人员)

缺点:

  • 可能无法扩展(不知道这是否属实)
  • 如果它崩溃我们可能会被搞砸(但它似乎非常稳定)
  • 我们需要另一个架构层(你需要为GWT提供一些类型的数据传输对象,因为hibernate持久化类不再可序列化了source

问候,

iuiz

4 个答案:

答案 0 :(得分:2)

如果你超越简单的查询,Hibernate会很复杂,Hibernate也会做一些延迟加载,除非你理解两者的复杂性,否则它对GWT不会很好。 我的建议是使用直接JDBC并对数据访问层进行分层,这样如果您认为需要,可以在以后轻松输入其他内容。

答案 1 :(得分:2)

恕我直言,hibernate最大的问题是: 1.与大量数据中的Raw JDBC相比的性能问题。 2.涉及大对象图等的复杂映射问题。你会花很多时间配置域模型以正常使用hibernate。

另一个替代方案是使用Spring的JDBC框架,它将为您提供hibernate的对象序列化功能,并对JDBC查询进行更细粒度的控制,并且更具可扩展性,在我看来更容易开发

答案 2 :(得分:1)

“我们需要另一个架构层(你需要为GWT提供一些类型的数据传输对象,因为hibernate持久化的类不再可序列化了)”

查看Gilead

答案 3 :(得分:1)

Hibernate太复杂了。尝试MyBatis与Guice和MyBatis-Guice。另请查看:A little bit diffrent GWT/GXT persistent approach