通过JDBC获取所有数据库名称

时间:2016-10-11 20:00:26

标签: postgresql jdbc junit

有没有办法如何使用JDBC从postgres数据库中获取所有数据库名称?我可以得到当前的那个,但那不是我想要的......

我有一个jUnit规则,它为每个测试创建数据库,在测试之后删除它,但在某些特殊情况下,当JVM死掉时,丢弃永远不会发生。所以我想在规则中检查现有数据库并清理一些,不再使用。我正在寻找的是一些\ l metacommand(但我不能轻易地从单元测试ssh到机器......)

对我来说还有一个解决方案是某些数据库ttl,就像某些amqp队列一样,但我想这不是在postgres中......

由于

1 个答案:

答案 0 :(得分:2)

跑步:

select datname
from pg_database

通过JDBC。它返回您连接的服务器上的所有数据库。

如果您知道如何通过psql元命令(例如\l)获取所需信息,只需使用psql开关运行-E - 所有内部SQL查询然后将元命令打印到控制台。

-l实际上使用的查询有点复杂,但只有名称,上面就足够了