Utilizando o SQL Server com Java

Logo SQL Server + Java

Bom dia pessoal, hoje o assunto não é problema e sim uma dica para quem está trabalhando com Java e buscando um Banco de Dados de verdade para utilizar em suas aplicações. Durante esta semana tive que executar um trabalho para a Universidade no qual uma aplicação Java SE se conecta de forma genérica a um Database qualquer e executa uma determinada query SQL de SELECT através de drivers JDBC.

Bom, a parte da programação foi relativamente simples e para testes iniciais utilizei o Microsoft Office Access 2007, após tudo certo resolvi testar diversos drivers JDBC afim de escolher um para futuros trabalhos que virão, testei o DB Derby, MySQL, Oracle, DB2 e SQL Server 2005, e é claro que o escolhido foi SQL Server por possuir um excelente suporte e documentação, e também pela simplicidade e rapidez de seu driver JDBC. Portanto meu post de hoje é para exemplificar uma conexão entre Java+SQLServer, vamos lá?

Bom primeiro de tudo faça o download da última versão do driver JDBC e sua documentação em:

Microsoft JDBC Driver para SQL Server

Após descompactar em uma pasta de sua preferência eu recomendo dar uma olhada na excelente documentação incluída na distribuição em \sqljdbc_1.2\help\default.htm

Agora vamos ao projeto, importe o arquivo jar (\sqljdbc_1.2\sqljdbc.jar) com o driver JDBC para o "Build Path" de seu projeto. Agora existem duas maneiras de se conectar com o Database, uma local e outra utilizando login e senha, para quem já está familiarizado com o SQL Server 2005 a maneira local é conhecida como Windows Autentication. Para quem for utilizar a maneira local deve ser adicionado ao projeto uma DLL que está inclusa na distribuição (\sqljdbc_1.2\auth\x86\sqljdbc_auth.dll).

Veja a disposição de arquivos no projeto:
Estrutura do Projeto

Feito isto estamos quase lá, configure agora seu driver...

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

E sua string de conexão ficará como esta a seguir (note que não há login e senha pois estamos utilizando o método de "Windows Autentication" como citado anteriormente).

DriverManager.getConnection
("jdbc:sqlserver://localhost:1433;databaseName=DatabaseName;
integratedSecurity=true;");

Por fim compile e verifique os resultados, divirta-se com uma Database de verdade!

Caso ocorra alguma Exception do gênero "Não foi possivel conectar à localhost" é porque seu SQL Server não foi configurado adequadamente para aceitar conexões através da porta 1433 (padrão). Eu tive esta mensagem de erro e a solução irei abordar a seguir.

Acesse o SQL Server Configuration Manager através de seu menu Iniciar, entre nos submenus SQL Server 2005 Network Configuration e Protocols for SQLEXPRESS, clique com o botão direito do mouse em "TCP/IP" e Enable como mostra a imagem abaixo.

Configuração TCP/IP

Agora dê um duplo clique em "TCP/IP" entre na Aba "IP Addresses" e escolha o painel "IPAll", nele configure o campo TCP Dynamic Ports para o valor 0 e TCP Port para 1433 conforme demonstrado na imagem.

Porta Fixa SQLServer

Agora basta dar alguns "OKs", reiniciar o servidor do SQLEXPRESS, compilar sua aplicação Java e divertir-se!

Bom por hoje é só, espero que tenham gostado!