我想使用两个单独的类(执行不同的操作)对MySQL数据库进行更新 - 一个每隔10秒执行一次,每分钟执行一次。我的Java知识存在一些差距,我想知道实现它的最佳方法是什么。
重要的是,如果丢失了与数据库的连接,我需要无限期地重新连接尝试,我猜测使用Prepared Statements可以提高查询效率。是否应始终保持与数据库的连接打开或在正在运行的更新之间关闭?如果类实例将无限期地运行,我可能还需要考虑清除内存中的对象/资源。
答案 0 :(得分:1)
回答第一个问题“如何在某个特定时间间隔运行java类?”
您可以使用quartz triggers以时间间隔运行java类。
第二个问题:“如果conn丢失怎么办?”
检查以连接的时间间隔运行的类,如果它打开然后不尝试连接,如果丢失则首先连接到db然后更新数据库。
第三个问题:“每次连接都应该保持打开状态吗?”
如果您想以非常小的时间间隔进行更新,那么我认为是的,您应该保持开放。但不确定。也许你应该试着保持开放。
答案 1 :(得分:0)
我会保持数据库连接打开但不要尝试自己管理打开的连接。使用Apache DBCP之类的连接池库。它允许指定 validationQuery ,这在技术上是一个非常简单的SELECT请求,它在实际语句之前执行,用于验证连接是否仍然存在。在我的应用程序中,这种方法非常扎实(一个应用程序可以全天候运行;每分钟查询一次)。