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,您可能有多个线程创建同名文件。看看能不能找到唯一命名数据库文件的方法。
苏阿莱。
我是开发 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,您可能有多个线程创建同名文件。看看能不能找到唯一命名数据库文件的方法。
苏阿莱。