JDBC Para SQLServer 2005

21 respostas
AlexandreM1

Venho pesquisando a um tempo sobre Java e suas funcionalidades e me deparei com a necessidade do uso de Banco de Dados. Pesquisei sobre seu uso em tal linguagem e vi que era necessário o download de um Driver para o Banco de Dados que fosse utilizar.

Desta forma, procurei o JDBC para SqlServer 2005, encontrando o JTDS “jtds-1.2.5.jar”. Porém, em todos os tutoriais e perguntas que encontro, todos estão com problemas em Selects e Updates, enquanto não consegui ao menos instalar essa birosca no meu projeto.

Gostaria de saber: Como prossigo, tendo em mãos o arquivo .jar do Driver?

Na linha:

Class.forName("net.sourceforge.jtds.jdbc.Driver");

Acusa: ClassNotFoundException

Utilizo Eclipse 3.4

Agradeço desde já,
[]'s

21 Respostas

V

Voce colocou o jar no lib da aplicacao ? Este erro acontece quando nao é feito isso.

AlexandreM1

Obrigado pela resposta =]

Então, meu projeto têm apenas a pasta bin e a src. =/
Tinha que ter sido criada automaticamente esta pasta lib quando criei meu projeto?

gilberto_oliveira

Olá,

então vc está usando alguma IDE tipo Eclipse ou Netbeans?

AlexandreM1

[]'s

AlexandreM1

Estou meio que estancado no projeto.
Se puderem me ajudar para que possa continuá-lo, agradeceria =]

[]'s

gilberto_oliveira

Cara eu não uso o eclipse então fica meio difícil de ajudar,

:arrow: Pesquise como adiciona uma lib / jar / biblioteca no projeto do eclipse.
:arrow: este link mostra como vc constrói o jar no eclipse http://www.guj.com.br/posts/list/35294.java

depois que construir o jar do seu projeto (arquivo executável) ai vc já pode executar normalmente digitando no terminal:

java -jar nomedojar.jar
AlexandreM1

tenho o NetBeans 6.8 aqui também se for facilitar para responder =]

V

Sobre o eclipse nao posso responder, pois utilizo o Netbeans. No netbeans apos criar o projeto, clique como botao direito e escolha Properties - Libraries - botao Add Jar/Folder.
Com isso voce já inclui seu jar no projeto e este erro para de ocorrer.

AlexandreM1

Agradeço a ajuda!
Só preciso fuçar como fazer isso no Eclipse agora, mas tendo uma base já fica mais fácil.

Aproveito o espaço para fazer outra pergunta:

Como fica a url da StringConnection para SQL Server 2005?

jdbc:sqlserver://:/??

trentinrossi

AlexandreM.:
Agradeço a ajuda!
Só preciso fuçar como fazer isso no Eclipse agora, mas tendo uma base já fica mais fácil.

Aproveito o espaço para fazer outra pergunta:

Como fica a url da StringConnection para SQL Server 2005?

jdbc:sqlserver://:/??

Segue abaixo os dados da minha conexão que tenho, funciona direitinho…

public class ConnectFactory {

    public static Connection getConnection() throws DAOException {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = "jdbc:sqlserver://ROSSI;"
                    + "databaseName=Vertical;user=vertical;password=lacitrev;";
            Connection con = DriverManager.getConnection(connectionUrl);
            return con;
        } catch (Exception e) {
            throw new DAOException(e.getMessage());
        }
    }

    public static void closeConnection(Connection conn, Statement stmt, ResultSet rs)
            throws DAOException {
        close(conn, stmt, rs);
    }

    public static void closeConnection(Connection conn, Statement stmt)
            throws DAOException {
        close(conn, stmt, null);
    }

    public static void closeConnection(Connection conn)
            throws DAOException {
        close(conn, null, null);
    }

    private static void close(Connection conn, Statement stmt, ResultSet rs) throws DAOException {
        try {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
            throw new DAOException(e.getMessage());
        }
    }
}

To usando MVC

Talvez isso ajude, qualquer coisa posta ai kra…

[]s

AlexandreM1

O fato de eu estar usando o Driver JTDS e não o da Microsoft não muda esta Connection String?

String connectionUrl = "jdbc:sqlserver://ROSSI;" + "databaseName=Vertical;user=vertical;password=lacitrev;";

Pois nesta página http://jtds.sourceforge.net/faq.html#urlFormat mostra outro formato.

trentinrossi

Provavelmente muda sim, pois eh outro padrão de driver, não sei te dizer como ficaria a STRING de conn

AlexandreM1

Colocando o Drive da Microsoft e o seguinte código:

public static void main(String args[]) throws Exception   
    {   
    	//Class.forName("net.sourceforge.jtds.jdbc.Driver");
    	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    	
        //Connection cn = DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/7D8AEC373AD2471/SQLEXPRESS");
    	
    	Connection cn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=7D8AEC373AD2471/SQLEXPRESS;"); 
        System.out.println("Conectado!");
        cn.close();
/*Comentei o que achava que poderia ser a String do Driver JTDS*/
    }

Deu esse erro:

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host  has failed. java.net.ConnectException: Connection refused: connect
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at Principal.main(Principal.java:16)
trentinrossi

Ao invés de colocar o IP do servidor coloque o nome para fazer um teste.

AlexandreM1

No C# (Visual Studio), utilizo a seguinte String de Conexão:

Data Source=7D8AEC373AD2471\SQLEXPRESS;Initial Catalog=AMB;Integrated Security=True

Como ela ficaria em Java?

jdbc:sqlserver://7D8AEC373AD2471\SQLEXPRESS;databaseName=AMB; ??

Obs: Tentei com “localhost” ao invés de 127.0.0.1 e não funcionou =/

barney

cara você adicionou seu JAR no Path ???
selecione seu projeto vá em file/properties/Java Build Path/Libraries
tem um botã ali Add JARs…
acho que resolve ou pelo menos ajuda

AlexandreM1

Meu JAR você diz o Driver do JDBC?

Se sim: Já resolvi o problema inicial. Estava tentando apenas gerar a Connection String, a qual está me arrancando os cabelos =/

[]'s

Valder_Olmo_Correa

É assim, para adicionar o drive no path você faz o download dele e salva em qualquer pasta.
Siga os passos que o Barney disse e quando clicar em Add Jars, abrirá uma janela para você selecionar o drive na pasta onde o mesmo foi salvo.
Vá até a pasta e clique no driver.

Para adicioá-lo no Eclipse parece que você tem que descompactá-lo na pasta Lib do eclipse. dessa forma quando clicar em Add Jars ele já aparecerá na pasta sem que você tenha que navegar até a pasta onde foi salvo.

AlexandreM1

PERGUNTA RESPONDIDA!

Criei outro tópico para minha outra pergunta:

Como deixar Connection String para Sql Server 2005?

M

OI pessoal.
Estou iniciando o uso do NetBeans com MySQL 5.0 e tenho a mesma duvida apresentada.
Na resposta postada para o SQL server2005 se aplica para o MySQL 5.0?

AlexandreM1

Sim!

Faça download do drive do JDBC para Mysql:
http://www.mysql.com/products/connector/

Nas propriedades do seu projeto, clique em bibliotecas e adicione o .jar do drive ao projeto.

Criado 18 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 21
Participantes 7