JDBC连接失败 - 如何进行故障转移?

时间:2011-10-02 09:28:12

标签: java database-connection

我有一个基于Swing开发的独立Java窗口应用程序。它连接到MySQL数据库以进行数据存储。如果数据库连接失败,我将从MySQL JDBC驱动程序(MySQLNonTransientConnectionException)获得链接失败异常。我不想重新实例化我的数据库连接对象或整个程序,以防发生此类链接失败问题。我只是想告诉用户以后再试一次,而不必重新启动整个应用程序。如果要求用户重新启动整个应用程序,则可能会对程序的质量产生负面印象。在没有重新实例化所有通信对象的情况下,您认为标准Java应用程序在数据库链接发生故障后进行故障转移的首选方式是什么?提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用连接池(例如C3PO或DBCP)。您的应用程序从池中获取Connections,执行语句并将Connection放回池中。可以将池配置为测试JDBC连接。例如,如果它们变得陈旧,它们可以由池自动重新实例化。

如果您的应用程序从池中获取Connection,它将是一个有效的Connection。让池处理有效/无效/陈旧JDBC连接的管理。