Java 连续和多个CRUD操作的最佳数据库访问

Java 连续和多个CRUD操作的最佳数据库访问,java,mysql,database-connection,Java,Mysql,Database Connection,在我问这个问题之前,我确信以前有人问过这个问题,但我很难用合适的术语来找到这个问题。结果我找不到任何信息。所以,如果以前有人问过,我道歉 考虑以下场景: 游戏服务器由用于玩家存储和日志记录的SQL数据库支持。每次播放器登录时,都会检索和写入数据。此外,每隔几秒钟(20秒左右)日志就会写入数据库,其中包括有关球员的更改数据 我想知道如何处理这些连接。保持连接永远打开是一个坏主意,因为MySQL服务器在“不活动”后关闭它 每次打开连接都有效,但我想知道这是最好的方法还是有其他的可能性?这是最好的方法

在我问这个问题之前,我确信以前有人问过这个问题,但我很难用合适的术语来找到这个问题。结果我找不到任何信息。所以,如果以前有人问过,我道歉

考虑以下场景: 游戏服务器由用于玩家存储和日志记录的SQL数据库支持。每次播放器登录时,都会检索和写入数据。此外,每隔几秒钟(20秒左右)日志就会写入数据库,其中包括有关球员的更改数据

我想知道如何处理这些连接。保持连接永远打开是一个坏主意,因为MySQL服务器在“不活动”后关闭它

每次打开连接都有效,但我想知道这是最好的方法还是有其他的可能性?

这是最好的方法。试试看,它非常快。您可以在普通JDBC以及JPA或O/R映射器上使用它。如果您有大量并发连接,它将保持一组连接处于打开状态(池)并管理它们的重用

如果您必须在数据库中存储日志,那么有几个日志框架已经具备了这样做的功能。例如,有一个在连接池顶部工作的DBAppender:

“……向上述MySQL数据库发送500个日志记录请求大约需要0.5秒,每个请求平均需要1毫秒,这是性能的十倍。”()


您可以配置数据库关闭连接后的超时。将数据库连接保持打开数天是否正常?也许我应该想出一种方法,如果几分钟内没有活动,就关闭连接,如果有活动,就保持连接打开。我认为保持连接打开几天是没有意义的。优势是什么?即使每分钟重新打开它也不应该是性能问题。我不会将超时时间设置为5分钟以上,因为打开的连接数量有限,如果您正在处理死掉的连接或忘记关闭连接,则很容易遇到问题。非常好。我还想到了连接池。我喜欢您为管理连接和日志提供备选方案的方式+1.