java - 在 jdbc 应用程序中连接 mysql 服务器的正确方法是什么?

标签 java jdbc

我有一个数据库,其中有几个注册用户,他们通过使用 jdbc 的 java 应用程序访问数据库。我在其他地方读到,连接应该在尽可能短的时间内打开和关闭,大多数时候在与您正在执行的语句或查询相同的 try block 中。然而,这意味着我应该将用户和密码存储在程序存储器中,并重复使用它来创建新连接;但是将密码存储在程序存储器中是否存在安全问题?应该如何与数据库建立新的连接?

最佳答案

我认为您的问题不是关于如何编写数据库连接代码。

这实际上取决于你的用户是否有在数据库中注册的id,或者你只有一个id(非人类)用于程序连接并为所有用户提供服务。如果是前者,您可以以某种方式提示用户输入密码一次,将其存储在变量中,使用该变量进行连接,使用后断开连接,如果需要则重新连接/断开连接。密码仅动态“存储”在内存中,并且在程序结束后不再存在,因此它是安全的。

如果是后者,那么你最好让你的程序运行在 web/servlet 服务器中,并且像 Luiggi 所说的那样,使用连接池。在这种情况下,连接密码将被编码在某个配置文件中,并且只有服务器的管理员才能访问。如果你没有这样的服务器,你必须回到上一段的解决方案,并在数据库中注册你的所有用户,每个用户都有自己的 ID 和密码。

希望有帮助。

关于java - 在 jdbc 应用程序中连接 mysql 服务器的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29293339/

相关文章:

java - div 类包含 onclick 元素如何在 selenium 中处理它

java - JDBCTemplate默认使用连接池吗?

Java - 需要 MySQL 并发解决方案

java - 无法加载类 [org.postgresql.Driver]

java - 将Java远程连接到另一个网络上的MYSQL DB

java - 在 TreeTableView 中添加进度条(将 Double 值返回到 Observable<Double>)

java - Logback 基于日期的文件滚动似乎不起作用

java - Android webview输入类型文件

java - 使用 Java 字符串时的提示和技巧,以提高性能和安全性

java - 从 Java 中的 InputStream 以只读方式加载 SQLite