Como conectar o SQL Server 2005 com NetBeans JAVA

9 respostas
cellodedy

Gostaria de saber coo eu faço para conectar o SQL Server 2005 com o NetBeans. 5.5…JAVA

Estou usando esta conexão com o access:

tive que criar um driver.

final private String driver = sun.jdbc.odbc.JdbcOdbcDriver; //conexao com o banco de dados access

final private String url = jdbc:odbc:controle;     final private String usuario = “”;

final private String senha = “”;

private Connection conexao; //responsavel pela conexão do banco de dados

public Statement statement; //abre caminho ate o banco e uma alto estrada

public ResultSet resultset;

insert into setor (nome,talhoes,tipo,ha,data,apelido) values (’”+

tf_nome.getText()+"’,’"+

Alguêm tem alguma dica ai…

Obrigado,

9 Respostas

joede.fadel

conecte utilizando jdbc

try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con = DriverManager.getConnection("jdbc:sqlserver://localhost:1434;databaseName=master","login","senha");
            stdados = con.createStatement();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
            
        } catch (SQLException ex) {
            ex.printStackTrace ();
        }
             
    }
joede.fadel

quando for postar algum codigo user ta tag “code” fica mais facil a visualização

FelipeSN

Um exemplo bom seria assim...

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class BancoDeDadosSqlServer {

    SQLServerDataSource dsSqlserver = new SQLServerDataSource();

    public BancoDeDadosSqlServer() {
        
        //local onde está instalado o banco
        dsSqlserver.setServerName("localhost");
        //nome do banco de dados
        dsSqlserver.setDatabaseName("nomedobd");
        dsSqlserver.setUser("root");
        //usuário e senha definidos por vc!
        dsSqlserver.setPassword("root");
        //Porta definida no meu banco
        dsSqlserver.setPortNumber(1295);
    }

    public java.sql.Connection getConn() {
        try {
            java.sql.Connection conMysql = dsSqlserver.getConnection();
            System.out.println("Conexão efetuada com sucesso.");
            return conMysql;
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
        return null;

    }

    public void fechaConn(Connection conn) {
        if (conn != null) {
            try {
                conn.close();
                System.out.println("Conexão fechada!");
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        BancoDeDadosSqlServer banco = new BancoDeDadosSqlServer();
        //cria a conexão
        Connection conn = banco.getConn();

        //fecha conexão
        banco.fechaConn(conn);
    }
}
cellodedy
import java.sql.*; //.* importa todas as bibliotecas do java
import javax.swing.*; 
import javax.xml.transform.Result;

//OO
public class conexao //classe conexao tem que ser o mesmo nome class conexao
{
    //criei uma variavel driver tipo string e constatnte o conteudo desta variavel não poder ser alterado
    final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; //conexao com o banco de dados access
    final private String url = "jdbc:odbc:controle"; //chamando o banco de dados "controle" esta armazenando a fonte de dados
    final private String usuario = "";
    final private String senha = "";
    private Connection conexao; //responsavel pela conexão do banco de dados
    public Statement statement; //abre caminho ate o banco e uma alto estrada
    public ResultSet resultset; // armazena o resultado no dados no banco

Está e a conexão que estou utilizando para desktop

cellodedy

Estou desenvolvendo uma aplicação para desktop!!!
Estou utilizando o access como banco de dados como exemplo mais gostaria de utilizar o SQL Server 2005!!!
gostaria de saber como faço a conexão com o SQL e na parte dos Insert muda alguma coisa de access para SQL??

Codigo completo da minha conexão
package utilitarios; 
import java.sql.*; //.* importa todas as bibliotecas do java
import javax.swing.*; 
import javax.xml.transform.Result;

public class conexao 
    //criei uma variavel driver tipo string e constatnte o conteudo desta variavel não poder ser alterado
    final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; //conexao com o banco de dados access
    final private String url = "jdbc:odbc:controle"; //chamando o banco de dados "controle" esta armazenando a fonte de dados
    final private String usuario = "";
    final private String senha = "";
    private Connection conexao; //responsavel pela conexão do banco de dados
    public Statement statement; //abre caminho ate o banco e uma alto estrada
    public ResultSet resultset; // armazena o resultado no dados no banco 
    
    public boolean conecta() //metodo conecta servi para todas as tabelas e cadastros tipo boolean retorna um valor
    { 
        try
        { 
            Class.forName(driver); //carregar o driver
            conexao = DriverManager.getConnection(url, usuario, senha); //efetuar a conexao propriamente dita
            //JOptionPane.showMessageDialog(null, "Conectou");
        }
        catch (ClassNotFoundException Driver) //catch tratamento de erro vou tratar o erro
        {
            JOptionPane.showMessageDialog(null, "Driver não localizado: "+Driver); //variavel driver que eu criei vai mostrar o erro pelo catch
            result = false;
        }
        catch (SQLException fonte) //tratamente de erro com a conexao do banco de dados e minha fonte
        {
            JOptionPane.showMessageDialog(null,"Deu erro na conexão "+ 
                    "com a fonte de dados"+fonte);//variavel fonte vai mostrar para mim o erro tratamento de erro
            result = false;
        }
        return result; //retonando true ele da sequencia caso false ele para
    }
    
        public void desconecta() //metodo de desconectar o banco pois o banco não pode ficar sempre conectado
    {
        //o java não permite ligação com banco de dados sem usar o try catch 
        //vc tem que usar o tratamento de erro com o java senão não funciona nada
        boolean result = true;
        try
        {
            conexao.close();
            JOptionPane.showMessageDialog(null, "Banco Fechado");
        }
        catch(SQLException fecha)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível "+
                    "Fechar o banco de dados"+fecha);
            result = false;
        }
    }
    
    //no momento que eu passar esse parametro na tabela setor qual o sql que eu quero executar
    public void executeSQL(String sql)//metodo para executar o banco de dados por parametro
    {
        try
        {
            statement = conexao.createStatement(
                        ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);            
//dois parametro que nos permite navegar por ele
// 1 ResultSet.TYPE_SCROLL_SENSITIVE me permite que eu passo navegar para ambos os lados para frente para traz
//2 ResultSet.CONCUR_READ_ONLY me permite que eu possa navegar 
//statement abre o caminho como uma alto estrada
            resultset = statement.executeQuery(sql); //aqui estou pegando o sql que esta sendo passado por parametro
            //resultset pega a alto estrada e sera executavel
        }
        //caso de alguma problema ele vai para o tratamento de erro
        catch (SQLException sqlex)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível "+
                    "executar o comando SQL"+sqlex+", o sql passado foi"+sql);
        }
    }
}

Obrigado,

cellodedy

Parte do insert

try
        {
                        
                    String sqlinsert ="insert into setor (nome,talhoes,tipo,ha,data,apelido) values ('"+
                    tf_nome.getText()+"','"+
                    tf_talhoes.getText()+"','"+
                    cb_tipo.getSelectedItem()+"','"+
                    tf_ha.getText()+"','"+
                    tf_data.getText()+"','"+
                    tf_apelido.getText()+"')";
            con_setor.statement.executeUpdate(sqlinsert);
            JOptionPane.showMessageDialog(null,"Gravação realizado com sucesso!");
            
            //atualiza o ResultSet
            //con_setor.resultset = con_setor.statement.executeQuery("Select * from setor");
            con_setor.executeSQL("select * from setor  order by "+ordenacao);
            atualiza_combo_box_setor();
            con_setor.resultset.first(); //posiciona no primeiro registro
            mostrar_dados(); //irá chamar a função em que irá mstrar os dados no form
        }
        catch (SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Erro ao tentar Gravar o registro..."+erro);
        }

Obrigado,

cellodedy

Parte de exclusão

try { String sql = "select * from setor Where codigo = "+tf_codigo.getText(); con_setor.executeSQL(sql); con_setor.resultset.first(); String nome = "Deseja deletar o setor : "+con_setor.resultset.getString("nome")+" ?"; int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION); if (opcao_escolhida == JOptionPane.YES_OPTION) { sql = "DELETE FROM setor Where codigo ="+tf_codigo.getText(); int conseguiu_excluir = con_setor.statement.executeUpdate(sql); if (conseguiu_excluir == 1) { JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso"); //atualiza o ResultSet con_setor.executeSQL("Select * from setor order by "+ordenacao); atualiza_combo_box_setor(); con_setor.resultset.first(); //posiciona no primeiro registro mostrar_dados(); //irá chamar a função em que irá mstrar os dados no form } } else return; } catch (SQLException erro) { JOptionPane.showMessageDialog(null,"Erro ao tentar excluir o registro..."+erro); }

Obrigado,

cellodedy

Parte de Update

try
            {
            //variavel do tipo String sql vou fazer um update no banco de dados
            
            String sql ="UPDATE setor SET nome ='"+tf_nome.getText()+"',"+
                    "talhoes = '"+tf_talhoes.getText()+"',"+
                    "tipo = '"+cb_tipo.getSelectedItem()+"',"+
                    "ha = '"+tf_ha.getText()+"',"+
                    "data = '"+tf_data.getText()+"',"+
                    "apelido = '"+tf_apelido.getText()+"' where codigo = "+tf_codigo.getText();
            con_setor.statement.executeUpdate(sql);
            //abri caminho ate o banco e estou atualizando os dados
            JOptionPane.showMessageDialog(null,"Alteração realizado com sucesso!");
            
            //se eu deletei ou atualizaei eu sempre tenho que atualizar o resultset 
            //atualiza o ResultSet
            con_setor.executeSQL("Select * from setor  order by "+ordenacao);
            atualiza_combo_box_setor();
            con_setor.resultset.first(); //posiciona no primeiro registro
            mostrar_dados(); //irá chamar a função em que irá mstrar os dados no form
        }
        catch (SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Erro ao tentar Alterar o registro..."+erro);
        }

Obrigado,

T

Bom dia,

try{	
	// cria um preparedStatement
	PreparedStatement stmt = con.prepareStatement("insert into contatos (nome,email,endereco) values (?,?,?)");

	// preenche os valores
	stmt.setString(1, ?xxx?);
	stmt.setString(2, ?[email removido]?);
	stmt.setString(3, ?R. xxxx 12?);

	// executa
	stmt.execute();
	stmt.close();

	System.out.println("Gravado!");

	con.close();

} catch (SQLException e) {
	 e.printStackTrace();
}
Usando o PreparedeStatement você para de usar todas essas concatenações que é uma coisa chata.

Faça o download do driver do SQL Server aqui: [url]http://www.microsoft.com/downloads/details.aspx?familyid=C47053EB-3B64-4794-950D-81E1EC91C1BA&displaylang=en[/url].
Agora é só inserir o driver na lib de sua aplicação e correr pro abraço!

Abraço!

Criado 6 de novembro de 2008
Ultima resposta 8 de nov. de 2008
Respostas 9
Participantes 4