Grails + JDBC puro
07/01/2014 08:55
1
Olá galera,

Estou trabalhando em uma aplicação multi-tenant onde tenho a necessidade de criar um banco de dados dinâmicamente para cada tenant e em determinado momento preciso conectar nesses bancos via JDBC puro. Estou usando o grails 2.3.4 com spring-security e multi-tanant-single-db. O problema é que não estou conseguindo fazer uma conexão direta com esses bancos de dados, já que os mesmos por serem criados dinâmicamente, não tem um datasource configurado. Recebo a seguinte mensagem:

def sql = Sql.newInstance("jdbc:mysql://localhost:3306/tenant_a_bi?autoReconnect=true", "user", "senha", "com.mysql.jdbc.Driver")

No suitable driver found for jdbc:mysql://localhost:3306/tenant_a_bi?autoReconnect=true

Acredito que seja possível fazer isso no ambiente do grails, mas já dei uma boa vasculhada na net e todos falam apenas em usar um datasrouce. Tem solução?
Tags: grails jdbc


1
Achei uma solução. Adicionei a dependência:

runtime 'commons-dbcp:commons-dbcp:1.2.2'


Então eu consigo em tempo de execução criar um datasource e usar para a conexão:

def tenantDataSource = new BasicDataSource()
tenantDataSource.setDriverClassName("com.mysql.jdbc.Driver");
tenantDataSource.setUrl("jdbc:mysql://localhost:3306/${tenant.databaseName}?autoReconnect=true");
tenantDataSource.setUsername("user");
tenantDataSource.setPassword("password");

def sql = Sql.newInstance(tenantDataSource)

Não sei se é a melhor solução, mas parece funcionar como o esperado.
07/01/2014 10:21


0
Olá Diego, também estou tentando realizar o mesmo procedimento com postgres sql. Estou tentando conectar em dois bancos diferentes, mas não estou conseguindo. Você já conseguiu fazer de outra forma ?  
17/04/2017 13:25



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto