Pegar tipo de conexão

Tenho um sistema multibancos (FireBird,SQLServer e Oracle). Estou criando uma função para atualização do banco de dados, porém não consigo identificar qual banco de dados que está rodando.

Preciso descrobrir se o banco que está rodando é oracle, SQLServer ou Firebird para poder atualizar as tabelas de acordo.

Tentei da seguinte forma:


jdbcTemplate.getDataSource().getConnection().getClientInfo().getProperty("driverClassName")

Seguinte exception:

java.lang.AbstractMethodError: org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.getClientInfo()Ljava/util/Properties;

Mas cada datasource não está amarrado a um banco ou uma base?

Sim, porém como vou saber em qual banco está esse datasource? Sendo que as configs estão no applicationContext e eu não consigo “captura-la”. O objetivo seria, o sistema se atualizar automaticamente… e baixar o war de um site e atualizar o banco de acordo com a base selecionada.