Microsoft SQL Server é um banco de dados relacional que pode ser usado para armazenar, usar e modificar dados. O Java Database Connectivity (JDBC) padrão é usado por aplicativos Java para acesso e manipulação de dados em bancos de dados relacionais.
JDBC é um protocolo de acesso de banco de dados que permite que você se conecte a um banco de dados e execute instruções SQL e consultas no banco de dados. As bibliotecas de classe do núcleo de Java fornecem as APIs JDBC, java.sql e javax.sql. No entanto, JDBC é projetado para permitir que os vendedores forneçam drivers que oferecem a especialização necessária para um banco de dados específico.
Microsoft JDBC Driver for SQL Server
O Microsoft JDBC Driver 4.0 para SQL Server, um driver JDBC Tipo 4 que fornece conectividade de banco de dados por meio das APIs (interfaces de programa aplicativo) padrão JDBC disponíveis na Plataforma Java.
Download: http://msdn.microsoft.com/pt-br/sqlserver/aa937724.aspx
Instalação
Para instalar descompacte o Driver em uma pasta e use o arquivo default.html da pasta help para informações adicionais.
Configurações Microsoft SQL Server
Para conectar-se com o Java você precisa habilitar o protocolo TCP/IP para rede, que por padrão vem desabilitado, para efetuar este procedimento siga os seguintes passos:
1 – Abra o SQL Server Configuration Manager, expanda os nodes da arvore até Configurações de rede do SQL Server e clique em, protocolos para SQLEXPRESS. Na opção TCP/IP escolha habilitado:
2 – Clique com o botão direito ainda em cima da opção TCP/IP e escolha propriedades, role as propriedades até o final e em IPALL, na opção porta, preencha com 1433:
4 – Vá para o primeiro node da arvore chamado Serviços do SQL Server e reinicie o serviço.
Configurando Driver JDBC SQL Server
Para usar o driver JDBC para SQL Server você pode adiciona-lo em seu projeto, clicando com o botão direito do mouse em cima do nome do projeto e escolhendo a opção propriedades, adicione o arquivo de driver na biblioteca do seu projeto usando a opção Add External JAR, a figura abaixo ilustra como efetuar este procedimento na IDE Eclipse:
Diretório: C:\[Seu diretório de download]\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\ptb\
Driver: sqljdbc4.jar
Exemplo:
Neste exemplo usamos o driver JDBC SQL Server para efetuar uma conexão no banco de dados, para criar o banco de dados você pode usar nosso walkthrough de como instalar as o banco de dados Microsoft SQL Server Express with Tools.
Java
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class ConexaoMssql implements ActionListener { // Declara componentes private JLabel ltitulo; private JLabel lbanco; private JLabel lusuario; private JLabel lsenha; private JTextField tbanco; private JTextField tusuario; private JPasswordField tsenha; private JButton botao; private JFrame menssagem; // Declara objetos de conexão private Connection conn; private Statement query; public Container criaPainel() { // Cria painel principal JPanel painel = new JPanel(); painel.setLayout(new BorderLayout()); painel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); // Cria componente titulo ltitulo = new JLabel("Microsoft SQL Server Express"); painel.add(ltitulo, BorderLayout.PAGE_START); // Cria painel de usuario JPanel painelDados = new JPanel(new GridLayout(0, 2, 10, 10)); // Cria componentes de usuario lbanco = new JLabel("Banco de dados:"); lusuario = new JLabel("Digite seu Usuario: "); lsenha = new JLabel("Digite sua Senha: "); tbanco = new JTextField(); tusuario = new JTextField(); tsenha = new JPasswordField(); // Define tamanho dos campos tusuario.setPreferredSize( new Dimension(120, 20)); tsenha.setPreferredSize( new Dimension(120, 20)); // Adiciona componentes no grid do painel painelDados.add(Box.createVerticalStrut(10)); painelDados.add(Box.createVerticalStrut(10)); painelDados.add(lbanco); painelDados.add(tbanco); painelDados.add(lusuario); painelDados.add(tusuario); painelDados.add(lsenha); painelDados.add(tsenha); painelDados.add(Box.createVerticalStrut(10)); painelDados.add(Box.createVerticalStrut(10)); // Cria botão botao = new JButton("Conectar"); botao.addActionListener(this); // Adiciona componentes no painel principal painel.add(painelDados); painel.add(botao, BorderLayout.PAGE_END); return painel; } public static void criaGUI() { // Cria formulario JFrame formulario = new JFrame("MSSQL Express 2012"); formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // cria classe da conexão ConexaoMssql conectar = new ConexaoMssql(); // Define painel formulario.setContentPane(conectar.criaPainel()); formulario.pack(); // Mostra aplicação formulario.setVisible(true); } public void conectar(String banco, String login, String senha) { try { // Define Driver de conexão JDBC thin String URL = "jdbc:sqlserver://Estacao01\\SQLEXPRESS:1433;databaseName=" + banco + ";user=" + login + ";password="+senha; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection(URL); //Executa pedido SQL query = conn.createStatement(); JOptionPane.showMessageDialog(menssagem, "Conexão Efetuada com sucesso!"); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { JOptionPane.showMessageDialog(menssagem, "Erro na conexão!"); ex.printStackTrace(); } } public void actionPerformed(ActionEvent arg0) { // Verfica tamanho da senha char[] tamanho = tsenha.getPassword(); if (tamanho.length == 0) { JOptionPane.showMessageDialog(menssagem, "Digite uma senha!"); } else { // recupera senha do Java Password Field String psenha = new String(tsenha.getPassword()); //Cria conexão ConexaoMssql conecta= new ConexaoMssql(); conecta.conectar(tbanco.getText(), tusuario.getText() , psenha); } } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { // Cria e exibe GUI criaGUI(); } }); } }
Gostaria de agradecer, pois estava a um dia com esse problema e este foi o único local na internet que consegui a solução.