我应该在哪里保存JDBC连接详细信息?

时间:2014-11-30 12:39:41

标签: java database swing jdbc io

我有一个带有数据库连接的Java Swing程序。到目前为止,我的要求是对连接细节进行硬编码,如下所示。

public void makeConnection() 
    {
        try
        {
             Class.forName("com.mysql.jdbc.Driver");

             con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName","root","");

             //System.out.println("Connection Established");
        }
        catch(Exception e)
        {
            e.printStackTrace();

        }
    }

然而,客户的IT人员试图通过VPN连接数据库,系统拒绝连接,很可能是因为硬编码连接。

现在,我正在寻找以客户端可以编辑的方式存储连接数据的方法。这意味着,像大多数通用程序一样,客户端决定数据库密码,端口等。他可能需要它bcs涉及VPN。因此,我计划为客户端创建一个小对话框,以输入数据库密码,用户和服务器位置。保存这些数据后,程序将读取它们并相应地建立连接。

但问题是,我在哪里保存这些?我知道我可以将它们保存在文本文件中,但它是一种非安全的方法,任何人都可以读取它。某种硬编码不是一种选择,因为客户端应该能够编辑他的密码等等。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您可以按建议java.util.prefs.Preferences使用here或建议javax.jnlp.PersistenceService存储here来存储连接详细信息。虽然平台通常会保护此类数据免受偶然监听,但您可以使用here所示的方法之一来存储盐渍哈希值。