Problema com Java e Mysql

1 resposta
E

Olá.
Estou tentando fazer um programa simples em java que faça a conexão com um banco de dados Mysql e não estou conseguindo, veja abaixo o meu códgio e o procedimento que estou fazendo.

Estou achando que o problema pode ser no connector do mysql pois não entendi muito bem como instala.

Arquivo JdbcExample2.java

package com.stardeveloper.example;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class JdbcExample2 {

public static void main(String args[]) {
Connection con = null;

try {
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/nrp", "root", "!nescafe");

  if(!con.isClosed())
    System.out.println("Successfully connected to " +
      "MySQL server using TCP/IP...");

} catch(Exception e) {
  System.err.println("Exception: " + e.getMessage());
} finally {
  try {
    if(con != null)
      con.close();
  } catch(SQLException e) {}
}

}
}

Compilo com o seguinte comando:
javac JdbcExample2.java

Após executo, veja o erro:

java JdbcExample2

Exception in thread main java.lang.NoClassDefFoundError: JdbcExample2 (wrong name: com/stardeveloper/example/JdbcExample2)

at java.lang.ClassLoader.defineClass0(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:539)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)

at java.net.URLClassLoader.access$100(URLClassLoader.java:55)

at java.net.URLClassLoader$1.run(URLClassLoader.java:194)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:187)

at java.lang.ClassLoader.loadClass(ClassLoader.java:289)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)

at java.lang.ClassLoader.loadClass(ClassLoader.java:235)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

Algúem saberia me dizer o que estou fazendo de errado?

Obrigado.
Everton Thomaz

1 Resposta

W

veja o seguinte codigo, nas strings serverName, username e password estou recuperando os dados atraves de um arquivo de configuracao. Mas vc pode atribuir valores como os que estao nos comentarios. Esses seriam localhost, root e daf respectivamente.

try {

// Carregando o JDBC Driver

String driverName = com.mysql.jdbc.Driver;

Class.forName(driverName);
// Criando a conexão com o Banco de Dados

//String serverName = “salademedicamen”;

String serverName = maquina;//“localhost”;

String mydatabase = Processo;

String url = jdbc:mysql://” + serverName + “:3306/” + mydatabase;

String username = usuario;//“root”;

String password = senha;//“daf”;
connection = DriverManager.getConnection(url, username, password);

stmPrincipal = connection.createStatement();

}  // fim do try
catch (ClassNotFoundException e) {

//Driver não encontrado

JOptionPane.showMessageDialog(this,“O driver do banco não foi encontrado !\n +

e.getMessage());

System.out.println(O driver expecificado não foi encontrado.”);

} catch (SQLException e) {

//Não está conseguindo se conectar ao banco

JOptionPane.showMessageDialog(this,“Não foi possível conectar ao banco !\n +

e.getMessage());

System.out.println(Não foi possível conectar ao Banco de Dados);

} catch (Exception e) {

//Não está conseguindo se conectar ao banco

JOptionPane.showMessageDialog(this,“Ocorreu um problema !\n +

e.getMessage());

System.out.println(e.getMessage());

}

Qto ao drive faça o seguinte :

@echo off
c:\jdk1.5.0_02\bin\java.exe -classpath “C:\jdk1.5.0_02\jre\lib\rt.jar;C:\Wallace\Documentos\Java\Processo\classes” PrincipalFrame

Sempre executo assim meus programas. A classe PrincipalFrame como o nome diz é a principal. Ponha o comando acima num arquivo .bat e execute-o. Va no fonte do drive e copie a pasta chamada “com” pra dentro do diretorio classes. Estou executando o aruivo .bat do diretorio Processo. E as classes compiladas estao no diretorio classes.

Espero que ajude.

Wallace

Criado 28 de abril de 2005
Ultima resposta 28 de abr. de 2005
Respostas 1
Participantes 2