Olá, pessoal do GUJ !
Estou com um baita problema na conexão de um aplicativo com o banco de dados MySql.
Sempre recebo uma mensagem de que a conexão não foi bem sucedida. Fiz um teste e o registro do Drive está ok !
Gostaria de saber se podem ajudar-me.
Tenho uma classe chamada CadastroClientesProdutos que chama uma classe chamada ConsultaProduto. Esta última por sua vez extende uma classe chamada Conexao, responsável por fazer a conexão com o banco. A classe Conexão implementa uma uma interface chamada DadosConexao, que possui os dados da conexão, o drive, o banco, senha, etc…
A classe ConsultaProduto também implementa um interface chamada DadosConsultaProduto, que tem por objetivo fazer a pesquisa e registrar algumas strings para a montagem da grade.
Bem, o nome do banco é banco mesmo, o usuário do banco não registrei nenhum, deixei root mesmo, e a senha é 1234, assim que instalei o MySql aqui em minha máquina. Já havia feito uma conexão bem sucedida em outra aplicação, mas sei lá por que agora ele apenas registra o drive com êxito e não conecta de maneira nenhuma. Já desinstalei o MySql mais de três vezes deletando todas as pastas para não restar nenhum resquício da instalação, instalei novamente, mas nada de conectar.
Sei que os códigos estão meio grandes, mas se alguém puder ajudar, agradeço.
Abaixo vão os códigos:
Classe CadastroClientesProdutos:
package clientesProdutos;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CadastroClientesProdutos extends JFrame implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
Dimension tamanho = new Dimension(dim.width/2, dim.height/2);
// Definição dos atributos e classes utilizadas na aplicação
// Define a barra de menu
JMenuBar menuBar1;
// Define os menu
JMenu cadastroCliente, cadastroProduto, sair;
// Define os itens de menu
JMenuItem consultarDadosCliente, consultarDadosProduto, incluirDadosCliente, incluirDadosProduto,
alterarDadosProduto, alterarDadosCliente, excluirDadosProduto, excluirDadosCliente;
public CadastroClientesProdutos()
{
controiJanelaPrincipal();
setVisible(true);
}
public void controiJanelaPrincipal()
{
//definição de propriedades da janela, utilizando métodos da classe JFrame
setTitle("Eventos de Ação"); //título
setSize(tamanho); //dimensões
//centralização da janela
setLocation((dim.width - tamanho.width)/2, (dim.height - tamanho.height)/2);
//desliga aplicação ao fechar a janela
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setTitle("Manutenção de Clientes e Produtos");
// Instancia o menu principal da aplicação
menuBar1 = new JMenuBar();
//Instancia os menus da aplicação
cadastroCliente = new JMenu("Clientes");
cadastroProduto = new JMenu("Produtos");
sair = new JMenu("Sair");
//Instancia os itens de menu do cliente
incluirDadosCliente = new JMenuItem("Incluir");
consultarDadosCliente = new JMenuItem("Consultar");
alterarDadosCliente = new JMenuItem("Alterar");
excluirDadosCliente = new JMenuItem("Excluir");
//Instancia os itens de menu dos produtos
incluirDadosProduto = new JMenuItem("Incluir");
consultarDadosProduto = new JMenuItem("Consultar");
alterarDadosProduto = new JMenuItem("Alterar");
excluirDadosProduto = new JMenuItem("Excluir");
//Inclui itens de menu como ouvintes de eventos:
//Clientes:
incluirDadosCliente.addActionListener(this);
consultarDadosCliente.addActionListener(this);
alterarDadosCliente.addActionListener(this);
excluirDadosCliente.addActionListener(this);
//Produtos:
incluirDadosProduto.addActionListener(this);
consultarDadosProduto.addActionListener(this);
alterarDadosProduto.addActionListener(this);
excluirDadosProduto.addActionListener(this);
//Inclui os itens de menu nos respectivos menus
cadastroCliente.add(incluirDadosCliente);
cadastroCliente.add(consultarDadosCliente);
cadastroCliente.add(alterarDadosCliente);
cadastroCliente.add(excluirDadosCliente);
cadastroProduto.add(incluirDadosProduto);
cadastroProduto.add(consultarDadosProduto);
cadastroProduto.add(alterarDadosProduto);
cadastroProduto.add(excluirDadosProduto);
//Adiciona os itens de menu nos respectivos menus
menuBar1.add(cadastroCliente);
menuBar1.add(cadastroProduto);
menuBar1.add(sair);
setJMenuBar(menuBar1);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==incluirDadosCliente)
{
JFrame janela = new InclusaoCliente();
janela.setVisible(true);
}
if(e.getSource()==consultarDadosCliente)
{
JFrame janela = new ConsultaCliente();
janela.setVisible(true);
}
if(e.getSource()==consultarDadosProduto)
{
new ConsultaProduto();
}
}
public static void main(String[] args)
{
new CadastroClientesProdutos();
}
}
Classe ConsultaProduto:
package clientesProdutos;
//Classe e interfaces necessárias para a consulta da tabela produto
import java.util.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import gui.GradeConsultaProduto;
public class ConsultaProduto extends Conexao implements DadosConsultaProduto
{
//Atributos da classe ConsultaProduto
Connection con;
Statement stm;
ResultSet rs = null;
//Construtor padrão da classe ConsultaProduto
public ConsultaProduto()
{
//invoca método da classe Conexao para abertura da conexão
con = abreConexao();
if (con == null)
{
JOptionPane.showMessageDialog(null,
"Conexão não estabelecida! A aplicação será encerrada.");
System.exit(0);
}
//invoca método para efetivar a consulta
if(consultar() == false)
try
{
con.close();
}
catch(SQLException sqlex)
{
String st = "Problema no fechamento da conexão!";
JOptionPane.showMessageDialog(null, st, "Erro", 0);
System.exit(0);
}
}
public boolean consultar()
{
try
{
//criando o espaço para executar declarações
stm = con.createStatement();
//cria objeto recordset com o select contido na interface DadosConsultaProduto
ResultSet rs = stm.executeQuery(QUERY1);
//array que conterá os títulos das colunas existente na tabela selecionada
String[] col = new String[4];
col[0] = TAB1;
col[1] = TAB2;
col[2] = TAB3;
col[3] = TAB4;
//objeto Vector para acumular os registros contidos na tabela selecionada
Vector registros = new Vector();
//enquanto rs.next() retornar true, ou seja, há registro
while(rs.next())
{
//objeto que capturará o conteúdo de cada registro da tabela
Object[] celula = new Object[4];
//acumula os conteúdos dos campos de cada registro corrente
celula[0] = rs.getInt(1);
celula[1] = rs.getString(2);
celula[2] = rs.getFloat(3);
celula[3] = rs.getInt(4);
registros.add(celula);
}
//array bidimensional para organizar os conteúdos da tabela selecionada no objeto Vector
Object[][] lin = (Object[][])registros.toArray(new Object[0][0]);
//organização dos dados na interface gráfica
new GradeConsultaProduto().setDadosGrade(new DefaultTableModel
(lin, col));
//fecha ResultSet e Connection
rs.close();
con.close();
return true;
}
catch (SQLException sqle)
{
String st = "Erro ocorrido!" +
"\nCódigo: " + sqle.getErrorCode() +
"\nMensagem: " + sqle.getMessage();
JOptionPane.showMessageDialog(null, st, "Erro", 0);
return false;
}
catch (Exception ex)
{
String msgErro = "Erro ocorrido!" +
"\nCausa: " + ex.getCause();
JOptionPane.showMessageDialog(null, msgErro, "Erro", 0);
return false;
}
}
}
Classe Conexao:
package clientesProdutos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Conexao implements DadosConexao
{
//construtor padrão da classe Conexao
public Conexao()
{
//registro do driver
if (registraDriver() == false)
{
//mensagem informando o não sucesso do registro do driver
JOptionPane.showMessageDialog(null,
"Driver não identificado! A aplicação será encerrada.",
"Erro", 0);
//finaliza a aplicação
System.exit(0);
}
}
//método para efetivar o registro do driver
private boolean registraDriver()
{
try
{
//registro do driver de conexão
Class.forName(JDBC_DRIVER);
//se o driver foi registrado
return true;
}
catch(ClassNotFoundException cnfe)
{
//se o driver não foi registrado
return false;
}
}
//método para abrir a conexão
public Connection abreConexao()
{
try
{
//efetiva a conexão, utilizando a URL, usuário e senha do banco de dados
Connection con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD);
System.out.println("passou aqui");
return con;
}
catch(SQLException sqle)
{
//problemas durante a conexão
JOptionPane.showMessageDialog(null,
"Problemas na conexão! A aplicação será encerrada.",
"Erro", 0);
return null;
}
}
}
Interface DadosConexao:
package clientesProdutos;
public interface DadosConexao
{
//atributos para driver JDBC, URL, USUÁRIO E SENHA do banco de dados
public static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
public static final String DATABASE_URL = "jdbc:mysql://localhost/banco";
public static final String USER = "root";
public static final String PASSWORD = "1234";
}
Interface DadosConsultaProduto:
package clientesProdutos;
public interface DadosConsultaProduto
{
//Dados para a query de consulta e nomes das tabelas
public static final String QUERY1 = "SELECT * FROM PRODUTO ORDER BY CODIGO";
public static final String TAB1 = "codigo";
public static final String TAB2 = "descricao";
public static final String TAB3 = "preco";
public static final String TAB4 = "quantidade_estoque";
}
Agradecido desde já pela ajuda.