我正在开发一个用 java 编写的服务器应用程序。每秒最多有 30 个客户端请求,每个请求都会更新特定的 mysql 表条目。
所有服务器线程都使用单个 mySQL 连接,它们从单例类中获取。然后服务器线程创建一个 Statement 并执行一个更新查询。
虽然我在执行后关闭了所有创建的语句,但服务器在几个小时后停止更新 mySQL 表。
有什么问题?这种设置是一个误解吗?
我正在开发一个用 java 编写的服务器应用程序。每秒最多有 30 个客户端请求,每个请求都会更新特定的 mysql 表条目。
所有服务器线程都使用单个 mySQL 连接,它们从单例类中获取。然后服务器线程创建一个 Statement 并执行一个更新查询。
虽然我在执行后关闭了所有创建的语句,但服务器在几个小时后停止更新 mySQL 表。
有什么问题?这种设置是一个误解吗?
也许,您的连接由于超时而关闭。您可以使用Connection#isValid来验证您的连接是否仍然打开。
您可以查看DriverManager getConnection 的连接超时。列出了几个很好的提示。
此外,您可以考虑在代码中使用连接池。Apache commons是一个很好的起点。