Conexão Microsoft SQL Server Express – JDBC – Java

Publicado: 7 de maio de 2014 em Java

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.

MSSQL - Java

MSSQL – Java

Microsoft JDBC Driver for SQL Server

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:

Habilitar TCP/IP de Rede

Habilitar TCP/IP de Rede

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:

Define Porta 1433

Define Porta 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:

JDBC - MSSQL

JDBC – MSSQL

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();

			}
		});      

	}
}
Publicidade
comentários
  1. Gostaria de agradecer, pois estava a um dia com esse problema e este foi o único local na internet que consegui a solução.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s