2011-05-04 77 views
3

在我的輕型網絡應用程序,將在谷歌應用程序引擎工作,我想使用HSQLDB。在谷歌應用程序引擎中使用HSQLDB

在啓動HSQLDB時,我使用瞭如下的url:「jdbc:hsqldb:file:./ database /」。

在本地tomcat上一切順利,但在谷歌應用程序引擎上我得到下面的異常;

Constructor threw exception; nested exception is com.hp.hpl.jena.sdb.SDBException: SQL Exception while connecting to database: jdbc:hsqldb:file:./database/appname : File input/output error ./database/appname.properties java.security.AccessControlException: access denied (java.io.FilePermission ./database write) 

有沒有人可以給線索定義適當的網址在谷歌應用程序引擎上運行HSQL數據庫?

+2

App Engine應用程序無法寫入文件系統。使用數據存儲來存儲數據。 – geoffspear 2011-05-04 16:06:25

回答

2

我不認爲GAE可以讓你編寫這個級別的文件。

您可以使用HSQLDB內存數據庫,它不需要文件,但在應用程序重新啓動時會被擦除。

爲什麼不使用JDO?

+0

在應用程序中,需要存儲和查詢RDF文檔。爲了實現這一點,該應用程序的體系結構基於Jena SDB。因爲,我需要一個傳統的數據庫。 – 2011-05-05 07:10:33

+0

我想現在谷歌有MySQL作爲服務。但你必須付錢。 – Mikhas 2014-05-05 21:52:04

2

在GAE中,您無法寫入文件,這顯然意味着HSQLDB在GAE上不起作用。正如Mikhas所建議的,您可以使用HSQLDB IN內存,該內存不會在任何地方持久存在。 如果您正在使用GAE,除了使用JDO或JPA之外,您別無選擇。 Appengine已針對其進行了優化。但將來我們可能會在應用程序引擎中使用關係數據庫。但就目前而言,答案是否定的。

+0

您也可以使用本機數據存儲API和其他ORM工具,如物化或枝條。 – 2011-05-05 23:02:55

1

(也是開源Java)H2 database可能工作。見項目H2GAE(請不要它是實驗)。不過我沒有自己測試過。