Hibernate 处理Swing应用程序上的休眠错误连接

Hibernate 处理Swing应用程序上的休眠错误连接,hibernate,swing,Hibernate,Swing,我得到了一个Swing应用程序,它开始向用户询问连接参数,因为每个用户都可能犯错误,我想知道当他们尝试错误的连接(即错误的url)时,最好的处理方法 我得到的是一个按钮,它将dbType、user、pass和url发送到一个映射,然后我获得一个EntityManagerFactory,它可以像这样持续整个应用程序: emf=Persistence.createEntityManagerFactory(“persistenceUnit”,connectionProperties) 然而,我花了将近

我得到了一个Swing应用程序,它开始向用户询问连接参数,因为每个用户都可能犯错误,我想知道当他们尝试错误的连接(即错误的url)时,最好的处理方法

我得到的是一个按钮,它将dbType、user、pass和url发送到一个映射,然后我获得一个EntityManagerFactory,它可以像这样持续整个应用程序:

emf=Persistence.createEntityManagerFactory(“persistenceUnit”,connectionProperties)

然而,我花了将近1分钟告诉我

java.sql.SQLRecoverableException:IO错误:网络适配器无法建立连接

  • 我可以操纵Hibernate更快地响应超时吗
  • 我应该改变使用entityManagerFactory的方式吗
编辑:我有一个连接器类,它所做的只是允许GUI向它发送参数,然后允许我的DAO检索该类的实例以获得EntityManagerFactory。这些都是我的连接属性,GUI根据它选择的数据库更改方言:

connectionProperties.put(“hibernate.dialogue”、“org.hibernate.dialogue.oracle10glatex”);connectionProperties.put(“hibernate.connection.driver_class”,“oracle.jdbc.driver.OracleDriver”);
connectionProperties.put(“hibernate.connection.url”、userSettings.get(“url”);
connectionProperties.put(“hibernate.connection.username”、userSettings.get(“username”、“username”);
connectionProperties.put(“hibernate.connection.password”),userSettings.get(“password”,“password”)

这是一种为需要实体管理器的人提供实体管理器的方法:

受保护的EntityManager getEntityManager(){
如果(em==null){
em=Connector.getInstance().getEmf().createEntityManager();
返回em; }否则{ 返回em; }
}

我不得不说,我很惊讶,设置JDBC连接超时的唯一方法似乎是使用static。我希望在流行的连接池中找到一些超时支持,但除了C3P0之外,它似乎不存在,因为您不想将C3P0用于生产应用程序。

我们需要知道您的db连接是如何配置的,以提供有用的建议。还有一个问题建议您刚才所说的,这似乎是唯一的方法。。。对于OracleDriver来说有点不同,thx