Java Web 应用程序 Servlet 中的 SQLite JDBC

SQLite JDBC in Java Web App Servlet

我是开发 Web 应用程序的新手,目前正在开发 Java servlet Web 应用程序,需要一个临时数据库来存储 运行ning 方法的输出在适用范围。该方法完成后,我将查询数据库以检索我需要的结果,然后 return 将其返回到 servlet 以在网页中提供。由于数据库中会有很多 i/o 并且一旦该方法完成就不需要持久化数据库,我认为像 SQLite JDBC 这样的轻量级数据库将工作得最好。 https://bitbucket.org/xerial/sqlite-jdbc/downloads

这是我计划用来实例化数据库的代码:

Connection c = null;
    try {
      Class.forName("org.sqlite.JDBC");
      c = DriverManager.getConnection("jdbc:sqlite:test.db");
    } catch ( Exception e ) {
      System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      System.exit(0);
    }
    System.out.println("Opened database successfully");

问题:SQLite 可以像这样 运行 吗?当方法在范围内时实例化数据库,一旦方法和线程完成,一旦方法超出范围,数据库就会被删除?

声明,

您正在创建外部资源,它是到数据库的连接。在您从该方法 return 之前,您有责任关闭资源。幸运的是 Java 提供了一个很好的方法来做到这一点,使用 try with resources。你可以这样做:

Class.forName("org.sqlite.JDBC"); try (final Connection c = DriverManager.getConnection("jdbc:sqlite:test.db");) { // ... write and read from the database } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); // -- do not exit yet: System.exit(0); } // ... don't forget to delete test.db

此外,由于这是一个 servlet,您可能有多个线程创建同名文件。看看能不能找到唯一命名数据库文件的方法。

苏阿莱。