5

我目前正在开发一个使用 hibernate 作为其 ORM 的应用程序;但是,目前我的机器上没有设置数据库,我想在没有数据库的情况下开始运行一些测试。我认为由于休眠是基于对象/代码的,因此必须有一种方法来模拟数据库功能。

如果没有办法通过休眠来做到这一点,那么在一般情况下(模拟数据库)如何实现?显然,它不需要处理大量数据,只需测试功能即可。

4

5 回答 5

7

只需使用像 Derby 这样的嵌入式数据库

也许您也可以尝试在 Windows 上使用 ODBC-JDBC 桥接并连接到 Excel 或 Access 文件。

于 2013-09-18T11:56:25.993 回答
2

Hibernate 是一个对象关系映射工具 (ORM)。没有对象和关系数据库就无法使用它。排除其中任何一个都没有任何意义

有很多开源、免费的关系数据库可供选择:

  1. MySQL
  2. PostgreSQL
  3. 高超声速
  4. 德比
  5. 玛丽亚数据库
  6. SQLite

您只受下载和安装能力的限制。

于 2013-09-18T11:57:58.470 回答
0

其他选项使用内存数据库,如H2 / hsqldb

于 2013-09-18T11:59:52.567 回答
0

我假设您已将所有 ORM 调用隐藏在一个干净的界面后面。
如果你这样做了,你可以简单地编写该接口的另一个实现,该实现由Map缓存你的对象的 a 支持。

然后,您可以在您的测试环境中使用它。

我必须同意@duffymo,你应该经历“第一次痛苦”并建立一个适当的工作环境。

于 2013-09-18T12:01:16.327 回答
0

我正在使用H2。它的主要优点之一是使用方言来模拟更常见的 DB 的行为。例如 - 我正在使用PostgreSQL并且我定义了Hibernateto be的方言PostgreSQL。我将它用于我的集成测试 - 在每个测试中,我都会创建适合我的测试场景的数据,然后很容易将其删除。无需回滚事务或任何东西。

于 2013-09-18T12:16:32.387 回答