我在Play 2应用程序中使用默认数据库:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
我认为这个数据库应该是内存中的,并且数据会在应用程序的运行之间消失,但是即使在我关闭应用程序之后,数据似乎仍然存在。
数据保存在哪里以及如何清理数据库?
答案 0 :(得分:1)
为了回应您的评论,控制台中的Ctrl-D不会终止Play应用程序;它在后台运行应用程序并使控制台再次可用(这就是关闭控制台没有终止应用程序的原因)。我不确定非Linux操作系统,但在Linux中,您需要在控制台中使用ctrl-C或在另一个控制台中使用kill <pid>
来终止Play应用程序。
答案 1 :(得分:0)
根据h2网站:
默认情况下,关闭与数据库的最后一个连接会关闭数据库。对于内存数据库,这意味着内容丢失。要使数据库保持打开状态,请将DB_CLOSE_DELAY = -1添加到数据库URL。要在虚拟机处于活动状态时保留内存数据库的内容,请使用jdbc:h2:mem:test; DB_CLOSE_DELAY = -1。
这可能与您的数据库有多个连接。