2013-05-16 78 views
1

我从SqlSessionFactoryBean生成SqlSessionFactory,并捕获异常以确定它是否为给定的数据源成功创建。Java - 检查SqlSessionFactory是否有效

但是,如果数据库存在,但没有侦听器,我发现该方法失败。没有异常产生,并且只有当我实际尝试创建SqlSessionFactory的开放会话时才会发生异常。

什么是最好的方式来检查我是否正在使用有效的数据库,接受正常的会话?

编辑:它实际上并不是打开一个会话会引发异常......它可能只发生在我第一次实际的更新/检索调用。

+0

我可能会错过一些东西,但是有一个特定的原因,为什么打开一个测试目的的会话不适合你? –

+0

@AaronKurtzhals事实证明我错了,但我宁愿不生成虚拟连接,如果有更合适的方式来找到这些信息。 – Jeremy

回答

0

许多连接池都有一个连接验证查询选项,它可以配置为执行一些简单的操作,如SELECT 1(当然取决于数据库)来验证连接是否有效。不过,它的前提是:尝试执行查询并捕获异常。

如果您已经在使用连接池,并且它支持这样的选项,我不知道这是否能解决您的问题。