你可以在没有设置数据库的情况下运行Hibernate吗?

5

我正在开发一个使用Hibernate作为ORM的应用程序;然而,我的计算机上目前没有设置任何数据库,我想在没有数据库的情况下开始运行一些测试。考虑到Hibernate是基于对象/代码的,因此必须有一种方法来模拟数据库功能。

如果不能通过Hibernate实现,如何在一般情况下实现数据库模拟?显然,它不需要处理大量数据,只需要测试功能。


在这里,放置一个sqlite文件可能是最简单的。 - christopher
5个回答

7

只需使用类似Derby的嵌入式数据库。

或许你也可以尝试使用ODBC-JDBC桥接器,在Windows上连接Excel或Access文件。


据我所知,64位Java中没有JDBC-ODBC桥接驱动程序。 - duffymo
@duffymo 可能是这样,我已经很久没有使用它了。 - SJuan76
不,我在Windows 7 64位上使用JDK 6和7。没有桥接驱动程序。 - duffymo

2
Hibernate是一个对象关系映射工具(ORM)。如果没有对象和关系型数据库,你将无法使用它。如果排除其中任何一个,就没有意义。
有很多开源免费的关系型数据库可以选择:
  1. MySQL
  2. PostgreSQL
  3. Hypersonic
  4. Derby
  5. MariaDB
  6. SQLite
你只受限于下载和安装能力。

0

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


0
我假设您已经将所有ORM调用隐藏在一个干净的接口后面。
如果是这样,您可以简单地编写另一种实现该接口的实现方式,并由Map支持缓存您的对象。
然后,您可以在测试环境中利用此功能。
但是,我必须同意@duffymo的看法,您应该经历'第一次痛苦'并建立一个适当的工作环境。

0

我正在使用H2。它的一个主要优点是使用方言来模拟更常见的数据库行为。例如 - 我正在使用PostgreSQL,并将Hibernate的方言定义为PostgreSQL。我将其用于我的集成测试 - 在每个测试中,我创建适合该测试场景的数据,然后很容易地将其删除。无需回滚事务或其他任何操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接