Exemplo de Conexão do SQL Server com Java

Alguém poderia me enviar um pequeno exemplo de conexão entre Java com SQL Server, pois até o momento o que encontrei não deu muito certo ?

No momento estou utilizando o sqljdbc.jar e sqljdbc4.jar

import java.sql.*;

//import java.sql.Connection;
//import java.sql.DriverManager;
//import java.sql.ResultSet;
//import java.sql.Statement;
//import java.sql.SQLException;

public class OpenProgram {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	
    Connection con;
    Statement stmt;
    String query = "select id_maquina,nm_maquina from tbl_maquina";
    try
    {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
   }
    catch(Exception e)
    {
            System.err.print("ClassNotFoundException: ");
            System.err.println(e.getMessage());
    }

    
    try
    {

    	   con = DriverManager.getConnection("jdbc:microsoft:sqlserver://SERVIDOR/PRODSQL2008;databaseName=SISTEMA;selectMethod=cursor","sa","teste");
           stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
           System.out.println("Lista de linhas da tabela sysobjects:");
            while (rs.next())
            {
            String s = rs.getString("nm_maquina");
            int i = rs.getInt("id_maquina");
            System.out.println(s + " " + i);
            }
            stmt.close();
            con.close();
    }
            catch(SQLException ex)
    {
            System.err.println("SQLException: " + ex.getMessage());
    }


	
}

}
:idea:

guia da m$ introdução ao sql server com java

Por favor, leia:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/

[quote=Andre Rosa]Por favor, leia:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/[/quote]

André Rosa

Obrigado pela dica, pois sou novo por aqui.

Grupo

Boa tarde, posso pedir uma grande ajuda, acredito que alguém que tenha um pouco mais de experiência possa me ajudar está grande bobeira que estou fazendo, e não estou conseguindo identificar onde estaria este erro :

Estou utilizando SQL Server 2008

Nome do Servidor = SERVIDOR
Instancia = PRODSQL2008
Usuario = sa
Senha = nucleu

con = DriverManager.getConnection(“jdbc:microsoft:sqlserver://SERVIDOR/PRODSQL2008:1433”,“sa”,“nucleu”);

E até por segurança baixei os seguintes jar

  1. msutil.jar mssqlserver.jar msbase.jar

  2. Anteriormente estava utilizando estes abaixo:
    sqljdbc.jar
    sqljdbc4.jar

E qual seria o mais correto utilizar para fazer conexão com SQL Server 2008, ou onde posso baixar ?

Na questão de referência, coloquei este jar dentro da pasta do Projeto e depois fiz o Build Path, até apareceu no Referenced Libraries, mais mesmo assim estou tendo o seguinte erro :
[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

Como posso confirmar se o jar adicionado está no path ?

Como estou utilizando Windows 7 verifiquei a variável ClassPath, existe uma dica mais confiável ?

grato

Grupo

Boa tarde, posso pedir uma grande ajuda, acredito que alguém que tenha um pouco mais de experiência possa me ajudar está grande bobeira que estou fazendo, e não estou conseguindo identificar onde estaria este erro :

Estou utilizando SQL Server 2008

Nome do Servidor = SERVIDOR
Instancia = PRODSQL2008
Usuario = sa
Senha = nucleu

con = DriverManager.getConnection(“jdbc:microsoft:sqlserver://SERVIDOR/PRODSQL2008:1433”,“sa”,“nucleu”);

E até por segurança baixei os seguintes jar

  1. msutil.jar mssqlserver.jar msbase.jar

  2. Anteriormente estava utilizando estes abaixo:
    sqljdbc.jar
    sqljdbc4.jar

E qual seria o mais correto utilizar para fazer conexão com SQL Server 2008, ou onde posso baixar ?

Na questão de referência, coloquei este jar dentro da pasta do Projeto e depois fiz o Build Path, até apareceu no Referenced Libraries, mais mesmo assim estou tendo o seguinte erro :
[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

Como posso confirmar se o jar adicionado está no path ?

Como estou utilizando Windows 7 verifiquei a variável ClassPath, existe uma dica mais confiável ?

grato

[/quote]

Pelo erro que apareceu provavelmente o driver esta instalado. Tente esse codigo abaixo.

A porta vem depois do servidor nao do banco de dados.
ps: teclado us e estou preguica de mudar para acentuar e ou usar ce cedilha.
ps1: use a tag code para mostrar codigo.

Grupo

Agradeço mais uma vez pela atenção, mais PRODSQL2008 é o nome da minha Instancia dentro do SQL Server 2008 não o nome do banco, acredito que esteja utilizando o drive incorreto para a versão de SQL Server que estou utilizando, ou está faltando alguma identificação do drive que estou utilizando, mais não tenho certeza, estou utilizando Windows 7, não sei se isto ajuda em alguma coisa como dica ?   :(

[quote=neibala]Grupo

Agradeço mais uma vez pela atenção, mais PRODSQL2008 é o nome da minha Instancia dentro do SQL Server 2008 não o nome do banco, acredito que esteja utilizando o drive incorreto para a versão de SQL Server que estou utilizando, ou está faltando alguma identificação do drive que estou utilizando, mais não tenho certeza, estou utilizando Windows 7, não sei se isto ajuda em alguma coisa como dica ?   :(

[/quote]

vc tentou mesmo trocar o que eu te disse?

O erro:

[quote][Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
[/quote]

Parece que mostra que não conseguiu estabelecer conexão com o servidor passado.

Como acredito que esteja fazendo algo de errado:

Confirmação do nome do servidor

Pinging SERVIDOR [fe80::60d9:e153:aed6:7155%12] with 32 bytes of data:
Reply from fe80::60d9:e153:aed6:7155%12: time<1ms
Reply from fe80::60d9:e153:aed6:7155%12: time<1ms
Reply from fe80::60d9:e153:aed6:7155%12: time<1ms
Reply from fe80::60d9:e153:aed6:7155%12: time<1ms

Ping statistics for fe80::60d9:e153:aed6:7155%12:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

  1. Tentei tanto pelo nome da Instância do SQL[color=blue] /PRODSQL2008[/color], e deu o mesmo erro.
    [color=red][Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.[/color]

  2. E com o nome do Banco [color=blue]/Loterica[/color], e deu o mesmo erro.
    [color=red][Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.[/color]

Para confirmar a Porta e a Instäncia segue imagem para ficar mais fácil a identificação do erro que possa estar acontecendo.
[color=green]SERVIDOR\PRODSQL2008[/color] e a Porta realmente está ativada pelo [color=orange]TCP-IP order 1[/color]

Invalid URL é um bom erro tá claro o erro :slight_smile:
Lendo aqui - Como usar o driver JDBC para SQL Server (da m$) - vi que sua conexão está errada mesmo.

String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=AdventureWorks;user=MyUserName;password=*****;"; Connection con = DriverManager.getConnection(connectionUrl);
Nesse exemplo (oficial da M$, usando os jars referidos por ti) ele usa um esquema um pouco diferente mas só adaptar o seu banco alí e o nome do servidor lá (no se caso pode ser mesmo ip:porta/instancia), tenta aí e diga o que conseguiu?

Grupo

Olha tentei utilizando [color=darkblue]sqljdbc4.jar[/color], ai começou a dar a seguinte mensagem abaixo :

[color=red]Falha na conexão TCP/IP com o host SERVIDOR, porta 1433. Erro: “Connection refused: connect. Verifique as propriedades da conexão, se uma instância do SQL Server está sendo executada no host e se está aceitando conexões TCP/IP na porta, e verifique se nenhum firewall está bloqueando as conexões TCP na porta.”.[/color]

[color=blue] String connectionUrl = “jdbc:sqlserver://SERVIDOR:1433;” + “databaseName=Cadastro;user=sa;password=nucleu;”;
Connection con = DriverManager.getConnection(connectionUrl);[/color]

Com base nisto, tentei mudar portas para 1434, e até mesmo instancia, e até desativei o firewall geral do windows, e mesmo assim continuou o mesmo erro.

E percebi que no SQL realmente estava 1433, mais utilizando netstat -a, tive o resultado abaixo, veja o que devo fazer neste caso :

Active Connections

Proto Local Address Foreign Address State
TCP 0.0.0.0:80 SERVIDOR:0 LISTENING
TCP 0.0.0.0:135 SERVIDOR:0 LISTENING
TCP 0.0.0.0:445 SERVIDOR:0 LISTENING
TCP 0.0.0.0:554 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1025 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1026 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1027 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1029 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1030 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1035 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1036 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1039 SERVIDOR:0 LISTENING
TCP 0.0.0.0:2382 SERVIDOR:0 LISTENING
TCP 0.0.0.0:2531 SERVIDOR:0 LISTENING
TCP 0.0.0.0:2869 SERVIDOR:0 LISTENING
TCP 0.0.0.0:5357 SERVIDOR:0 LISTENING
TCP 0.0.0.0:10243 SERVIDOR:0 LISTENING
TCP 0.0.0.0:49192 SERVIDOR:0 LISTENING
TCP 127.0.0.1:1033 SERVIDOR:27015 ESTABLISHED
TCP 127.0.0.1:3252 SERVIDOR:12080 ESTABLISHED
TCP 127.0.0.1:5354 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12025 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12080 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12080 SERVIDOR:3252 ESTABLISHED
TCP 127.0.0.1:12110 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12119 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12143 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12465 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12563 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12993 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12995 SERVIDOR:0 LISTENING
TCP 127.0.0.1:27015 SERVIDOR:0 LISTENING
TCP 127.0.0.1:27015 SERVIDOR:1033 ESTABLISHED
TCP 127.0.0.1:49193 SERVIDOR:0 LISTENING
TCP 192.168.0.135:139 SERVIDOR:0 LISTENING
TCP 192.168.0.135:1053 a96-16-102-161:https CLOSE_WAIT
TCP 192.168.0.135:3256 ip-208-109-100-149:http ESTABLISHED
TCP [::]:80 SERVIDOR:0 LISTENING
TCP [::]:135 SERVIDOR:0 LISTENING
TCP [::]:445 SERVIDOR:0 LISTENING
TCP [::]:554 SERVIDOR:0 LISTENING
TCP [::]:1025 SERVIDOR:0 LISTENING
TCP [::]:1026 SERVIDOR:0 LISTENING
TCP [::]:1027 SERVIDOR:0 LISTENING
TCP [::]:1029 SERVIDOR:0 LISTENING
TCP [::]:1030 SERVIDOR:0 LISTENING
TCP [::]:1035 SERVIDOR:0 LISTENING
TCP [::]:1039 SERVIDOR:0 LISTENING
TCP [::]:2382 SERVIDOR:0 LISTENING
TCP [::]:2531 SERVIDOR:0 LISTENING
TCP [::]:2869 SERVIDOR:0 LISTENING
TCP [::]:3587 SERVIDOR:0 LISTENING
TCP [::]:5357 SERVIDOR:0 LISTENING
TCP [::]:10243 SERVIDOR:0 LISTENING
TCP [::]:49192 SERVIDOR:0 LISTENING
TCP [::1]:49193 SERVIDOR:0 LISTENING
UDP 0.0.0.0:500 :
UDP 0.0.0.0:1434 :
UDP 0.0.0.0:3544 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:4500 :
UDP 0.0.0.0:5004 :
UDP 0.0.0.0:5005 :
UDP 0.0.0.0:5355 :
UDP 0.0.0.0:57863 :
UDP 0.0.0.0:60740 :
UDP 0.0.0.0:60742 :
UDP 0.0.0.0:60744 :
UDP 127.0.0.1:1900 :
UDP 127.0.0.1:50445 :
UDP 127.0.0.1:50446 :
UDP 127.0.0.1:50447 :
UDP 127.0.0.1:51980 :
UDP 127.0.0.1:55721 :
UDP 127.0.0.1:57816 :
UDP 127.0.0.1:57861 :
UDP 127.0.0.1:57862 :
UDP 127.0.0.1:57865 :
UDP 127.0.0.1:62246 :
UDP 127.0.0.1:64386 :
UDP 127.0.0.1:64939 :
UDP 192.168.0.135:137 :
UDP 192.168.0.135:138 :
UDP 192.168.0.135:1900 :
UDP 192.168.0.135:5353 :
UDP 192.168.0.135:54596 :
UDP 192.168.0.135:57815 :
UDP [::]:500 :
UDP [::]:1434 :
UDP [::]:3540 :
UDP [::]:3702 :
UDP [::]:3702 :
UDP [::]:3702 :
UDP [::]:3702 :
UDP [::]:4500 :
UDP [::]:5004 :
UDP [::]:5005 :
UDP [::]:5355 :
UDP [::]:57864 :
UDP [::]:60741 :
UDP [::]:60743 :
UDP [::]:60745 :
UDP [::1]:1900 :
UDP [::1]:5353 :
UDP [::1]:57814 :
UDP [fe80::60d9:e153:aed6:7155%12]:1900 :
UDP [fe80::60d9:e153:aed6:7155%12]:57813 :

Grupo

Olha tentei utilizando [color=darkblue]sqljdbc4.jar[/color], ai começou a dar a seguinte mensagem abaixo :

[color=red]Falha na conexão TCP/IP com o host SERVIDOR, porta 1433. Erro: “Connection refused: connect. Verifique as propriedades da conexão, se uma instância do SQL Server está sendo executada no host e se está aceitando conexões TCP/IP na porta, e verifique se nenhum firewall está bloqueando as conexões TCP na porta.”.[/color]

[color=blue] String connectionUrl = “jdbc:sqlserver://SERVIDOR:1433;” + “databaseName=Cadastro;user=sa;password=nucleu;”;
Connection con = DriverManager.getConnection(connectionUrl);[/color]

Com base nisto, tentei mudar portas para 1434, e até mesmo instancia, e até desativei o firewall geral do windows, e mesmo assim continuou o mesmo erro.

E percebi que no SQL realmente estava 1433, mais utilizando netstat -a, tive o resultado abaixo, veja o que devo fazer neste caso :

Active Connections

Proto Local Address Foreign Address State
TCP 0.0.0.0:80 SERVIDOR:0 LISTENING
TCP 0.0.0.0:135 SERVIDOR:0 LISTENING
TCP 0.0.0.0:445 SERVIDOR:0 LISTENING
TCP 0.0.0.0:554 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1025 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1026 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1027 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1029 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1030 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1035 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1036 SERVIDOR:0 LISTENING
TCP 0.0.0.0:1039 SERVIDOR:0 LISTENING
TCP 0.0.0.0:2382 SERVIDOR:0 LISTENING
TCP 0.0.0.0:2531 SERVIDOR:0 LISTENING
TCP 0.0.0.0:2869 SERVIDOR:0 LISTENING
TCP 0.0.0.0:5357 SERVIDOR:0 LISTENING
TCP 0.0.0.0:10243 SERVIDOR:0 LISTENING
TCP 0.0.0.0:49192 SERVIDOR:0 LISTENING
TCP 127.0.0.1:1033 SERVIDOR:27015 ESTABLISHED
TCP 127.0.0.1:3252 SERVIDOR:12080 ESTABLISHED
TCP 127.0.0.1:5354 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12025 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12080 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12080 SERVIDOR:3252 ESTABLISHED
TCP 127.0.0.1:12110 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12119 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12143 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12465 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12563 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12993 SERVIDOR:0 LISTENING
TCP 127.0.0.1:12995 SERVIDOR:0 LISTENING
TCP 127.0.0.1:27015 SERVIDOR:0 LISTENING
TCP 127.0.0.1:27015 SERVIDOR:1033 ESTABLISHED
TCP 127.0.0.1:49193 SERVIDOR:0 LISTENING
TCP 192.168.0.135:139 SERVIDOR:0 LISTENING
TCP 192.168.0.135:1053 a96-16-102-161:https CLOSE_WAIT
TCP 192.168.0.135:3256 ip-208-109-100-149:http ESTABLISHED
TCP [::]:80 SERVIDOR:0 LISTENING
TCP [::]:135 SERVIDOR:0 LISTENING
TCP [::]:445 SERVIDOR:0 LISTENING
TCP [::]:554 SERVIDOR:0 LISTENING
TCP [::]:1025 SERVIDOR:0 LISTENING
TCP [::]:1026 SERVIDOR:0 LISTENING
TCP [::]:1027 SERVIDOR:0 LISTENING
TCP [::]:1029 SERVIDOR:0 LISTENING
TCP [::]:1030 SERVIDOR:0 LISTENING
TCP [::]:1035 SERVIDOR:0 LISTENING
TCP [::]:1039 SERVIDOR:0 LISTENING
TCP [::]:2382 SERVIDOR:0 LISTENING
TCP [::]:2531 SERVIDOR:0 LISTENING
TCP [::]:2869 SERVIDOR:0 LISTENING
TCP [::]:3587 SERVIDOR:0 LISTENING
TCP [::]:5357 SERVIDOR:0 LISTENING
TCP [::]:10243 SERVIDOR:0 LISTENING
TCP [::]:49192 SERVIDOR:0 LISTENING
TCP [::1]:49193 SERVIDOR:0 LISTENING
UDP 0.0.0.0:500 :
UDP 0.0.0.0:1434 :
UDP 0.0.0.0:3544 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:3702 :
UDP 0.0.0.0:4500 :
UDP 0.0.0.0:5004 :
UDP 0.0.0.0:5005 :
UDP 0.0.0.0:5355 :
UDP 0.0.0.0:57863 :
UDP 0.0.0.0:60740 :
UDP 0.0.0.0:60742 :
UDP 0.0.0.0:60744 :
UDP 127.0.0.1:1900 :
UDP 127.0.0.1:50445 :
UDP 127.0.0.1:50446 :
UDP 127.0.0.1:50447 :
UDP 127.0.0.1:51980 :
UDP 127.0.0.1:55721 :
UDP 127.0.0.1:57816 :
UDP 127.0.0.1:57861 :
UDP 127.0.0.1:57862 :
UDP 127.0.0.1:57865 :
UDP 127.0.0.1:62246 :
UDP 127.0.0.1:64386 :
UDP 127.0.0.1:64939 :
UDP 192.168.0.135:137 :
UDP 192.168.0.135:138 :
UDP 192.168.0.135:1900 :
UDP 192.168.0.135:5353 :
UDP 192.168.0.135:54596 :
UDP 192.168.0.135:57815 :
UDP [::]:500 :
UDP [::]:1434 :
UDP [::]:3540 :
UDP [::]:3702 :
UDP [::]:3702 :
UDP [::]:3702 :
UDP [::]:3702 :
UDP [::]:4500 :
UDP [::]:5004 :
UDP [::]:5005 :
UDP [::]:5355 :
UDP [::]:57864 :
UDP [::]:60741 :
UDP [::]:60743 :
UDP [::]:60745 :
UDP [::1]:1900 :
UDP [::1]:5353 :
UDP [::1]:57814 :
UDP [fe80::60d9:e153:aed6:7155%12]:1900 :
UDP [fe80::60d9:e153:aed6:7155%12]:57813 :