我有一个带有数据库连接的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。因此,我计划为客户端创建一个小对话框,以输入数据库密码,用户和服务器位置。保存这些数据后,程序将读取它们并相应地建立连接。
但问题是,我在哪里保存这些?我知道我可以将它们保存在文本文件中,但它是一种非安全的方法,任何人都可以读取它。某种硬编码不是一种选择,因为客户端应该能够编辑他的密码等等。
有什么建议吗?
答案 0 :(得分:3)
您可以按建议java.util.prefs.Preferences
使用here或建议javax.jnlp.PersistenceService
存储here来存储连接详细信息。虽然平台通常会保护此类数据免受偶然监听,但您可以使用here所示的方法之一来存储盐渍哈希值。