Drver jdbc para netbeans

20 respostas
E

ESTOU USANDO NETBEANS E NAO ESTOU CONSEGUINDO COMPILAR ESSA CLASSE, EU JA INSTALEI O Microsoft SQL Server 2000 Driver for JDBC MAS MESMO ASSIM ELE GERA UM ERRO QUANDO EU TENTO REGISTRAR O DRIVE COM ESSE COMANDO.

// Registrar Driver
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

ELE GERA ESSE ERRO:
C:\Biosec-Desenvolvimento\sgaa\sgaa\src\java\acessoDados\AcessoDbPrincipal.java:30: unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

[code]

package acessoDados;

import java.sql.*;

class AcessoDbPrincipal {

public static void main(String args[]) {
Connection con = null;
try {
// Registrar Driver
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
// Estabelecer conexão
con = DriverManager.getConnection("jdbc:odbc:sgaa","sa","");
// Comando no banco de dados
Statement stm = con.createStatement();
String SQL ="Select matricula,nome from Alunos ";
// Executar o comando
ResultSet rs = stm.executeQuery(SQL);
// Leitura dos dados
while (rs.next()) {
String mat = rs.getString("matricula");
String nom = rs.getString("nome");
System.out.println("Matricula:"+ mat + "Nome:"+ nom);
}
} catch (SQLException e) {
System.out.println(e);
}
//Fecha conexão
try {
con.close();
} catch (SQLException e) {
System.out.println(e);
}
}
}

SE ALGUEM PODER AJUDAR AGRADEÇO

20 Respostas

fsquadro

Onde está o driver?

Você adicionou-o ao Classpath?

Giulliano

Use o driver JTDS.jar

esta na versão 1.2…

B

Você usou o mecanismo do NetBeans para importar bibliotecas? Costuma funcionar bem e é um ganho interessante em relação ao Eclipse, por exemplo. No NetBeans 5.5 eu sei que tem essa funcionalidade.

Abraços

E

Como faço para adicionar o driver ao classpath?

B

No Net Beans tem uma pasta chamada Bibliotecas (ou algo assim) dentro do projeto. Clique com o botao direito nela que uma opção para adição de bibliotecas será apresentada. Usando essa opção, você consegue adicionar o driver ao classpath.

Abraços

fsquadro

engenharia1:
Como faço para adicionar o driver ao classpath?

No NetBeans, você seleciona o projeto, vai em Propriedades -> Biblioteca (Library) -> Add JAR

E adiciona o jar.

E

onde o arquivo .jar fica localizado???

fsquadro

Vamos por partes…

Você já baixou o driver para o SQL Server? (Segundo o Giuliano o JTDS.jar)

Caso sim, você deve coloca-lo na pasta lib da sua aplicação. Se a sua aplicação for Web, a pasta lib deve ficar dentro da pasta WEB-INF.

E

pronto baixei e coloquei dentro da pasta

C:\Biosec-Desenvolvimento\sgaa\sgaa\build\web\WEB-INF\lib

link do driver
http://sourceforge.net/project/downloading.php?group_id=33291&use_mirror=ufpr&filename=jtds-1.2.1-dist.zip&9813324

fsquadro

engenharia1:
pronto baixei e coloquei dentro da pasta

C:\Biosec-Desenvolvimento\sgaa\sgaa\build\web\WEB-INF\lib

Não coloque na pasta Build.

Coloque na pasta WEB.

C:\Biosec-Desenvolvimento\sgaa\sgaa\web\WEB-INF\lib

E depois vá em Propriedade e adicione a lib.

E

nao existe a pasta lib em

C:\Biosec-Desenvolvimento\sgaa\sgaa\web\WEB-INF

fsquadro

engenharia1:
nao existe a pasta lib em

C:\Biosec-Desenvolvimento\sgaa\sgaa\web\WEB-INF

Então cria uma pasta lib em WEB-INF e coloque o arquivo lá.

E

Ok acabei de fazer,
o driver
"“jtds-1.2.1-dist.zip”"
deixo ele zip ou descarrrego o mesmo??

C:\Biosec-Desenvolvimento\sgaa\sgaa\web\WEB-INF\lib

fsquadro

engenharia1:
Ok acabei de fazer,
o driver
"“jtds-1.2.1-dist.zip”"
deixo ele zip ou descarrrego o mesmo??

C:\Biosec-Desenvolvimento\sgaa\sgaa\web\WEB-INF\lib

Coloca só o jar, tira o arquivo do zip.

E

Pronto, já o fiz e o adicionei a biblioteca usando as propriedades do projeto.

jtds-1.2.1.jar

fsquadro

engenharia1:
Pronto, já o fiz e o adicionei a biblioteca usando as propriedades do projeto.

jtds-1.2.1.jar

E funcionou agora?

E

Não continua dando o mesmo erro nessa linha

Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();

ele gera essa resposta como erro

FALHA NA EXECUÇÃO (tempo total: 5 segundos)

fsquadro

A linha 30, é essa do Class.forName?

E

Sim,
e apenas ela esta sublinhada com vermelho

E

Consegui resolver o problema dos driver desta maneira

package acessodados;
/*
* AcessoDbPrincipal.java
* Created on 8 de Agosto de 2007, 12:00
*/
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

/**
* @author Amarante
*/
class AcessoDbPrincipal {
  //Nome do drive a ser utilizado
  //
  static final String JDBC_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";    
  static final String DATABASE_URL = "jdbc:microsoft:sqlserver://localhost/daten1:1433";
  // carrega o aplicativo
  public static void main( String args[] )
  {
   Connection connection = null; // gerencia a conexão
   Statement statement = null; // instrução de consulta 
  
   // conecta-se ao banco de dados 
   try 
   {
     Class.forName( JDBC_DRIVER ); // carrega classe de driver do banco de dados

     // estabelece conexão com o banco de dados
     connection =                           
      DriverManager.getConnection( DATABASE_URL, "sa", "" );

     // cria Statement para consultar banco de dados
     statement = connection.createStatement();
     
     // consulta o banco de dados 
     ResultSet resultSet = statement.executeQuery(      
      "SELECT matricula, nome FROM alunos" );
     
     // processa resultados da consulta
     ResultSetMetaData metaData = resultSet.getMetaData();
     int numberOfColumns = metaData.getColumnCount();   
     System.out.println( "Alunos:" );
     
     for ( int i = 1; i <= numberOfColumns; i++ )
      System.out.printf( "%-8s\t", metaData.getColumnName( i ));
     System.out.println();
     
     while (resultSet.next()) 
     {
      for ( int i = 1; i <= numberOfColumns; i++ )
        System.out.printf( "%-8s\t", resultSet.getObject( i ));
      System.out.println();
     } // fim do while
   } // fim do try
   catch (SQLException sqlException)                
   {                                 
     sqlException.printStackTrace();
     System.exit( 1 );                        
   } // fim do catch
   catch (ClassNotFoundException classNotFound)           
   {                                 
     classNotFound.printStackTrace();      
     System.exit( 1 );                        
   } // fim do catch
   finally // assegura que a instrução e conexão são fechadas adequadamente
   {                               
     try                            
     {                             
      statement.close();                   
      connection.close();                   
     } // fim do try
     catch ( Exception exception )               
     {                             
      exception.printStackTrace();              
      System.exit( 1 );                    
     } // fim do catch
   } // fim do finally                       
  } // fim de main
}

Obrigado e um abraço!
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
compile-single:
run-main:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at acessodados.AcessoDbPrincipal.main(AcessoDbPrincipal.java:30)
Java Result: 1
EXECUTADO COM SUCESSO (tempo total: 6 segundos)

Criado 7 de agosto de 2007
Ultima resposta 8 de ago. de 2007
Respostas 20
Participantes 4