Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据库需要多少钱';当使用Hibernate时,它的成熟度很重要_Java_Hibernate_Orm_Rdbms - Fatal编程技术网

Java 数据库需要多少钱';当使用Hibernate时,它的成熟度很重要

Java 数据库需要多少钱';当使用Hibernate时,它的成熟度很重要,java,hibernate,orm,rdbms,Java,Hibernate,Orm,Rdbms,我想知道在使用Hibernate框架时,数据库有多重要。例如,在比较Oracle和MySql时,独立数据库有很大的不同,但当数据库隐藏在Hibernate之后时,我看不出有什么大的不同。将Hibernate与更高级的数据库系统结合使用有哪些优点 谢谢您的回答。Hibernate只是一个工具,它使您与db的交互比简单的jdbc更容易。但是hibernate不会为它做db工作:它不能提高db性能或添加一些特性。所以数据库仍然是一个重要的选择。Hibernate只是一个工具,它使您与db的交互比简单的

我想知道在使用Hibernate框架时,数据库有多重要。例如,在比较Oracle和MySql时,独立数据库有很大的不同,但当数据库隐藏在Hibernate之后时,我看不出有什么大的不同。将Hibernate与更高级的数据库系统结合使用有哪些优点


谢谢您的回答。

Hibernate只是一个工具,它使您与db的交互比简单的jdbc更容易。但是hibernate不会为它做db工作:它不能提高db性能或添加一些特性。所以数据库仍然是一个重要的选择。

Hibernate只是一个工具,它使您与db的交互比简单的jdbc更容易。但是hibernate不会为它做db工作:它不能提高db性能或添加一些特性。因此,数据库仍然是一个重要的选择。

Hibernate或多或少是一种映射语言,它允许您在代码中调用Hibernate方法,并让Hibernate库将这些方法调用转换为适当的JDBC调用(或多或少)

因此,只要Hibernate知道如何将其API调用转换为适用于给定RDBMS的正确、高效的SQL,这就不重要了。RDBMS的“成熟度”可能是一个问题,如果它不断地改变特性等等,但只是在需要不断更新相应的Hibernate方言来处理特定版本的意义上


在大多数情况下,如果您只是使用符合SQL标准的方面,您不应该看到Hibernate有问题,因为它应该能够很好地处理最低公分母的内容。也就是说,如果您将此RDBMS专门用于其“更高级”的功能,您可能会对Hibernate没有利用这些功能感到失望(取决于这些很酷的功能是完全内部的,例如性能非常好的查询优化器,还是外部的,例如一些新的SQL命令).

Hibernate或多或少是一种映射语言,它允许您在代码中调用Hibernate方法,并让Hibernate库将这些方法调用转换为适当的JDBC调用(或多或少)

因此,只要Hibernate知道如何将其API调用转换为适用于给定RDBMS的正确、高效的SQL,这就不重要了。RDBMS的“成熟度”可能是一个问题,如果它不断地改变特性等等,但只是在需要不断更新相应的Hibernate方言来处理特定版本的意义上


在大多数情况下,如果您只是使用符合SQL标准的方面,您不应该看到Hibernate有问题,因为它应该能够很好地处理最低公分母的内容。也就是说,如果您将此RDBMS专门用于其“更高级”的功能,您可能会对Hibernate没有利用这些功能感到失望(取决于这些很酷的功能是完全内部的,例如性能非常好的查询优化器,还是外部的,例如一些新的SQL命令).

除了RDBMS的本质之外,区别在于作为结果使用的特定“方言”的能力。

除了RDBMS的本质之外,区别在于特定“方言”的能力这将作为一个结果使用。

我可以权威地说,这可能非常重要。我不确定您是否会看到MySQL和Oracle在应用程序级别上有多大区别,但如果您“向下”查看DBMS列表并访问诸如SQLite或H2之类的数据库,根据存储的对象类型和访问模式,它们的内部工作方式会有很大的不同——即使hibernate隐藏了数据库的古怪之处。锁定机制、并发能力、它们如何处理事务、索引构建/利用率/交互等方面的细节将影响应用程序的运行情况,有时会产生重大影响。例如,由于我们发现的局限性,我们不得不将运行系统上的千兆字节数据从H2迁移到MySQL——尽管我们在任何地方都使用hibernate


显然,每个数据库都有自己的功能集wrt复制、分片、总体性能、成本、管理工具等,这些都必须考虑进去。

我可以权威地说,这非常重要。我不确定您是否会看到MySQL和Oracle在应用程序级别上有多大区别,但如果您“向下”查看DBMS列表并访问诸如SQLite或H2之类的数据库,根据存储的对象类型和访问模式,它们的内部工作方式会有很大的不同——即使hibernate隐藏了数据库的古怪之处。锁定机制、并发能力、它们如何处理事务、索引构建/利用率/交互等方面的细节将影响应用程序的运行情况,有时会产生重大影响。例如,由于我们发现的局限性,我们不得不将运行系统上的千兆字节数据从H2迁移到MySQL——尽管我们在任何地方都使用hibernate

显然,每个数据库都有自己的功能集wrt复制、分片、总体性能、成本、管理工具等,这些都必须考虑在内