Java Web应用程序Servlet中的SQLite JDBC



我对开发Web应用程序是相对较新的,目前我正在研究Java Servlet Web应用程序,并且需要一个临时数据库来存储在范围内运行的方法中的输出。方法完成后,我将查询数据库以检索我需要的结果,然后将其返回到网页中提供的servlet。由于数据库中会有很多I/O,并且一旦完成该方法,就无需持续数据库,因此我认为像SQLITE JDBC这样的轻重量DB将最有效。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,如果方法在范围中,则在方法中实例化数据库,然后一旦方法完成后,该方法就会删除?

Declan,

您正在创建一个外部资源,这是与数据库的连接。您有责任在从方法返回之前关闭资源。幸运的是,Java提供了一种很好的方法,可以尝试使用资源尝试。您可以做类似的事情:

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,因此您可以拥有多个线程创建具有相同名称的文件。查看您是否可以找到一种唯一命名数据库文件的方法。

sualeh。

最新更新