在appengine中创建一个sqlite文件

时间:2014-11-27 16:48:11

标签: java sqlite google-app-engine

我对gae文件系统的限制感到不满。 我正在创建一个工具,可以将数据结构导出到许多不同的输出文件(json,xml ...) 其中一个是sqlite-database-file。 您是否有任何想法如何在这种受限制的环境中做到这一点?

我尝试创建一个内存数据库但没有成功:

 DriverManager.getConnection("jdbc:sqlite::memory:");

我还尝试使用文件存储桶:

DriverManager.getConnection("jdbc:sqlite:gs://"+bucketnameü+"/sqllite");

他们都没有工作。我担心这根本不可能:(我不想启动计算引擎实例来创建sqllite文件。

是否有其他框架可以动态创建该数据库文件。

这里是整个代码:

Connection c = null;
            try {
              Class.forName("org.sqlite.JDBC");           
              c = DriverManager.getConnection("jdbc:sqlite:gs://"+bucketnameü+"/sqllite");
              Statement statement = c.createStatement();
              statement.setQueryTimeout(30);  // set timeout to 30 sec.
              statement.executeUpdate("create table person (id integer, name string)");
              c.close();

            } catch ( Exception e ) {
              System.err.println( e.getClass().getName() + ": " + e.getMessage() );
              e.printStackTrace(System.out);
            }

我已经在Google AppEngine: Use SQLite file uploaded by user

中找到了一个有趣的方法

我在内存数据库中尝试了SQLJet但没有成功。 gaevfs看起来也不是一个好主意。

1 个答案:

答案 0 :(得分:0)

如果您仍然需要访问文件系统,则可以创建Managed VMs,以避免App Engine的大部分限制,尤其是对文件系统的访问。