问题描述
|
我仔细阅读了一个休眠教程,他们说休眠不适用于以数据为中心的应用程序。它给程序带来的“面向对象的结构”给我留下了深刻的印象,但是我的应用程序非常以数据为中心(它获取和更新大量记录。但是我不使用任何存储过程)。不能使用hibernate吗?是否在hibernate之上编写了任何包装程序,我可以将其用于我的应用程序?感谢您的帮助。
解决方法
我不确定短语“ 0”的具体含义。不是所有的数据库应用程序都为“ 0”吗?但是,如果您要处理大量数据,则Hibernate可能不是最佳选择。 Hibernate最好是表示映射到数据库的对象模型,它可能在任何应用程序中都有作用,但是要执行ETL(提取/转换/加载)任务,您可能需要手工编写非常有效的SQL。
, 原则上可以,但是它通常很慢。 Hibernate或多或少为从数据库检索到的每一行创建一个对象。如果您要处理大量数据,则性能会受到严重影响。同样,使用单个更新对许多行进行的更新仅具有非常基本的支持。
包装器无济于事,至少在对象创建问题上没有帮助。
, 使用Hibernate有许多优点,当开发人员正确设置其对象模型时,通过对象与数据库进行交互会具有很大的吸引力,但实际上我发现Hibernate很棒,但是遇到问题时会非常沮丧例如性能和故障查找。
关于DA(数据访问)层的决策,我问自己一个问题。
我是否在编写需要运行其他数据库的应用程序?
如果答案是肯定的,那么我将考虑使用Hibernate之类的(ORM)。
如果不是,那么我通常只会通过Spring通常使用JDBC。
我觉得通过JDBC与数据库进行交互更加透明,并且更容易发现故障和性能调整。