我正在构建一个需要定期访问内部Apache Derby数据库的应用程序。
我想知道在每组语句完成后我是否应该关闭应用程序连接,或者我是否可以保持连接打开。
只有一个用户在任何给定时间使用和访问该应用程序。
如果我使用外部数据库,你的答案会改变吗?
感谢。
答案 0 :(得分:0)
对于嵌入式Derby数据库而言,这可能并不重要,因为只有启动服务器的JVM才能获得嵌入式连接。但是,当你完成时,总是是关闭数据库连接等资源的好习惯。
使用Java 7及更高版本,您可以使用try-with-resources语句自动为您执行此操作。例如:
import java.sql.*;
class DbConnect {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/";
String database = "database";
String userName = "username";
String password = "password";
try (Connection connection = DriverManager.getConnection(
url + database, userName, password)) {
System.out.println("Database connection: Successful");
// Do database work
} catch (Exception e) {
System.out.println("Database connection: Failed");
e.printStackTrace();
}
}
}
此处,Connection
对象将在块结束时自动关闭。
注意:您可以对实现java.lang.AutoCloseable
的任何资源使用try-with-resources语句,例如,当您阅读和编写文件时。