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

我有一个带有数据库连接的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。 因此,我计划为客户端创建一个小对话框,以输入数据库密码,用户和服务器位置。 保存这些数据后,程序将读取它们并相应地建立连接。

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

任何建议?

您可以使用此处建议的java.util.prefs.Preferencesjavax.jnlp.PersistenceService存储连接详细信息,如此处所示 。 虽然平台通常会保护此类数据免受偶然监听,但您可以使用此处显示的方法之一存储salted哈希。