Hoje em dia dá muita pena de um consultor do mercado que não conhece as ferramentas que o mercado oferece, recentemente fui entrevistado pelo projeto KDE (que eu ajudo) para falar um pouco sobre esse assunto.
Com certeza quem não trabalha com banco de dados é minoria, se você como eu pertence à maioria, não saia de casa sem o esquilo!
Desenvolvido desde 2001 o SQuirreL SQL é a melhor ferramenta que você pode usar no seu trabalho, necessitando de poucos ajustes para funcionar pra valer.
Comece fazendo o download do JAR no site oficial (não baixe o ZIP, que contém menos recursos), e continue lendo!
Separei as principais vantagens sobre ele:
- É open source – além de gratuito, o código fonte é totalmente aberto, o que facilita o seu crescimen,, to com a ajuda da comunidade criando novas melhorias e estendendo suas funcionalidades com plugins.
- É multiplataforma – como ele é feito em Java, roda praticamente em qualquer plataforma existente.
- Suporta mais de 20 bancos de dados – usando um driver JDBC ele suporta diversos bancos, entre eles eu uso mais os drivers do Oracle, MySQL, PostgreSQL, DB2 e SQL ServerClique na opção Drivers, depois MySQL e selecione a opção para modificar o driver.
Em seguida clique na aba Extra Class Path, clique em Add e selecione o arquivo jar do JDBC do MySQL (exemplo: mysql-connector-java-5.1.5-bin.jar). Depois de selecionado o arquivo, clique em List Drivers e selecione uma opção do combo Class Name.
Felizmente só precisamos criar o driver uma vez, agora vamos criar uma conexão clicando no + :
Informe os dados do banco, e selecione a opção Auto Logon e clique em Ok para salvar.
- Tem interface em português – não é qualquer ferramenta que oferece o nosso idioma, para isso basta alterar o Locale nas Preferências Globais dentro da aba Geral.
Nem tudo está traduzido, mas já é um começo.
- Possui auto-complete de tabelas e colunas – hoje se a ferramenta não tem auto-complete, você demora para montar os seus comandos SQL no mínimo o dobro do tempo.
Vejam um exemplo listando as tabelas existentes:E outro sugerindo o nome das colunas de uma tabela:
- Facilmente altera tabelas – lembrar a sintaxe de remover ou aumentar o tamanho uma coluna nem sempre é trivial, ainda mais quando existem diferentes tipos de banco e cada um com sua sintaxe. Felizmente existe aqui o plugin chamado Refactoring que conforme o tipo de banco de dados, oferece um assistente que facilmente podemos manipular a estrutura de nossas tabelas.
No exemplo abaixo, adicionaremos uma coluna para armazenar a sigla do país da tabela ESTADO:Depois é possível ver o comando SQL que o assistente gerou para alterar a tabela:
- Copia tabelas para diferentes bancos – com o plugin DB Copy podemos facilmente copiar tabelas (estrutura + registros) , suas chaves primárias e estrangeiras, até se quisermos também gravar um script dessa cópia completa.No exemplo vamos copiar duas tabelas da conexão com o MySQL para outra conexão com o Oracle.
Com as duas sessões abertas, selecionamos as tabelas que desejamos copiar e clicamos com o botão esquerdo do mouse:Depois, na base do Oracle selecionamos a opção Paste Table:
Durante a cópia, é exibida uma janela para acompanhar o processo:
- Gerar diagrama das tabelas – exibe facilmente um diagrama de suas tabelas, basta selecionar as tabelas que precisa:
Depois é só acessar a nova aba criada para visualizar o seu diagrama completo:
- Gera facilmente scripts SQL – gerar scripts de tabelas é algo que todo desenvolvedor precisa, e fazer isso aqui é muito fácil , conseguimos gerar scripts para a estrutura da tabela, com todos os dados da tabela, ou um simples rascunho de um INSERT.No exemplo abaixo, vamos gerar o script da tabela ESTADO, selecionando a opção Generate Table Script:
Com isso o SQL é gerado na aba conforme a imagem abaixo:
Para gerar os dados dessa tabela, basta selecionar a opção Generate Data Script:
- Roda HQL! – o grande diferencial dessa ferramenta é para quem trabalha com Hibernate poder executar seus HQL direto na ferramenta.A configuração é um pouco complicada, vou ilustrar aqui os passos, mas se não conseguirem podem colocar as dúvidas nos comentários .
Cada projeto Java terá uma configuração gravada na ferramenta, pois tanto um projeto que use JPA quanto outro que use somente Hibernate terão configurações distintas. No exemplo vamos mostrar um projeto com apenas Hibernate.
Para criar uma configuração, acesse pelo menu File – Global Preferences as configurações globais, e a aba Hibernate. Depois informe o nome da configuração e clique onde está indicado abaixo para adicionar duas coisas: a primeira é o diretório de onde está o hibernate.cfg.xml ( não adicione o arquivo, adicione o diretório) , a segunda é adicionar todas as bibliotecas usadas no seu projeto (aquelas que estão no \WEB-INF\lib\ por exemplo).
Se você tem um projeto com Hibernate e MySQL, eu separei para download um pacote com as bibliotecas necessárias, faltando apenas o JAR com suas classes Entity do Hibernate.
Em seguida precisamos informar de que maneira a fábrica de sessões será disponibilizada: chamando o Hibernate direto (nessa opção não funciona Annotations, as classes precisam estar mapeados nos arquivos .hbm), especificando o nome do persistence unit (JPA) ou mostrando a classe de sua aplicação que tem o método public SessionFactoryImpl getSessionFactoryImpl() .
O projeto do exemplo usa Hibernate com Annotations , portanto precisamos especificar qual classe tem o método de fábrica, que no meu caso é br.org.cruzada.core.util.HibernateUtil.
Depois na aba do Hibernate, selecione a configuração criada e clique no ícone da tomada. Se a conexão der certo, o ícone muda e aparecem os objetos mapeados conforme imagem abaixo:
Digite o HQL que quiser (tem auto-complete!) e clique no botão HQL to SQL para gerar o SQL com os resultados:
Existem outras vantagens do SQL SQuirreL, mas essas são as minhas preferidas, tem outros plugins que não mencionei aqui, além de outros não oficiais.
Uma última dica: se você acessa tabelas muito grandes e gera SQLs com milhares de linhas, é interessante saber que o padrão definido nos arquivos (squirrel-sql.bat no Windows e squirrel-sql.sh no Linux) é de 256 megabytes de memória. Se desejar aumentar esse valor, é só alterar o valor padrão e reiniciar a ferramenta.
Boa sorte nos SQLs!
Fernando Boaglio, para a comunidade. =)