【问题标题】:Difference between h2 vs hibernate and MySql in general sense一般意义上的h2与hibernate和MySql之间的区别
【发布时间】:2020-03-14 23:17:54
【问题描述】:

我在构建spring web时了解到H2,Hibernate。 早些时候,当我开发 android 应用程序时,我使用 sqlite 或 mySQL 数据库。 在新平台上使用它们时,我对差异有点摸不着头脑 其中。

我目前的理解是:

H2和MySQL都是关系型数据库管理系统

Hibernate 是 orm(对象关系模型)

如果这三个可以在同一个应用程序中使用,我有点困惑 或者这三个不能同时使用。请理解清楚 英语和一个现实生活中的例子。TIA

【问题讨论】:

    标签: mysql hibernate spring-boot h2


    【解决方案1】:

    是的,H2 和 MySQL 都是关系型数据库。

    MySQL 是一个基于服务器的数据库 - 它作为独立于您的应用程序的进程运行,通常用于生产部署。

    H2 是一个轻量级数据库,它可以完全在内存中运行,也可以在磁盘存储中运行,无论是在应用程序的进程(嵌入式)中还是在单独的进程中。它最常用于测试场景,恕我直言,不适合大多数生产应用程序。

    Hibernate 是一种 ORM,只要您远离供应商特定的功能,它就可以将您的应用程序与您正在使用的特定数据库隔离开来。

    在使用 Hibernate 和基于它构建的库时,在生产中使用独立数据库(如 MySQL)和在测试中使用嵌入式数据库(如 H2)是很常见的,两者之间只有一些配置文件发生变化。

    由于您使用的是 Spring,因此可以说使用 Spring Data 和 JPA 比直接使用 Hibernate 更好。 Hibernate 与 Spring Data 捆绑在一起,充当 JPA 提供者。

    【讨论】:

    • “生产中的 MySQL 等数据库,测试中的 H2 等嵌入式数据库,两者之间只有一些配置文件发生变化。” 玩俄语时的奇怪语句发布时轮盘赌,然后在使用来自不同供应商的 RDMS 时...非常确定大多数 DBA/程序员都知道您应该在相同的 RDMS 上测试和发布软件,即使相同的 RDMS 具有较小的版本号差异也可能导致错误或意外的性能问题,其中次要版本之间的优化不同
    • 我同意。我没有说它明智,我只是说这很常见:-)
    • “我同意。我说的并不明智,我只是说这很常见 :-)” 很公平。我个人会避免随波逐流在寒冷的天气里找一条河,然后寻找一座桥来穿越;-) .. 或多或少的意思是,我不承担或增加不必要的风险,因为它是在自找麻烦
    猜你喜欢
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2012-03-28
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    相关资源
    最近更新 更多