【问题标题】:Protocol concerning connections with Apache Derby with Java有关使用 Java 与 Apache Derby 连接的协议
【发布时间】:2018-11-05 11:43:54
【问题描述】:

我正在构建一个需要定期访问内部 Apache Derby 数据库的应用程序。

我想知道是否应该在每组语句完成后关闭应用程序连接,或者是否可以让连接保持打开状态。

该应用程序在任何给定时间只能由一个用户使用和访问。

如果我使用外部数据库,你的答案会改变吗?

【问题讨论】:

  • 在这里找到了一些信息stackoverflow.com/questions/11356937/…,但它并没有完全回答我的问题。任何 cmets 表示赞赏。
  • 嵌入式配置?客户端-服务器配置?您计划一次打开多少个连接:数十个?数百?数千? “使用外部数据库”是什么意思?

标签: java mysql sql derby


【解决方案1】:

对于嵌入式 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 语句,例如在读取和写入文件时。

【讨论】:

    猜你喜欢
    • 2015-11-15
    • 2019-11-14
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多