2011-10-02 57 views
1

我有一个基于Swing开发的独立Java窗口应用程序。它连接到一个用于数据存储的MySQL数据库。如果数据库连接失败,我会从MySQL JDBC驱动程序(MySQLNonTransientConnectionException)中获取链接失败异常。我不想重新实例化我的数据库连接对象或整个程序,以防发生这种链接失败问题。我只想告诉用户稍后再试,而不必重新启动整个应用程序。如果要求用户重新启动整个应用程序,那么可能会给程序的质量带来负面影响。对于标准java应用程序在这种数据库链接失败之后进行故障切换而不必重新实例化所有通信对象,您认为什么是这种首选方式?提前致谢。JDBC连接链接失败 - 如何故障转移?

+0

我没有看到你的程序如何在没有打开新连接的情况下继续运行。 –

+0

你必须根据你的要求编写代码 - '如果database_dead显示消息' – home

回答

1

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

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