Olá comunidade GUJ!
Eu sou iniciante na programação em JAVA e estou realizando um projeto para cadastrar alguns dados usando o banco de dados MySQL, porém eu não consigo efetuar conexão.
IDE: Eclipse NEON
Wampserver: Versão 3.0.6 Windows x64
Teste em sistemas: Windows 10 e 7
JDK: Versão 1.8.0_25
Entre os passos para montar o projeto foi pedido para que usasse um pacote .jar. Segue a versão:
mysql-connector-java-5.1.7-bin.jar
O Eclipse não aponta nenhum erro, inclusive eu criei o mesmo projeto no Netbeans (versão 8.1) e repassei os mesmos códigos para todas as classes, ambas as IDEs abrem o projeto mas nenhum deles efetua a conexão com o banco MySQL.
Abaixo eu postei 3 das 8 classes em que há mais envolvimento com o banco de dados:
Classe Fornecedores:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.awt.event.*;
import java.sql.SQLException;
public class Fornecedores extends JFrame
{
private JTextArea saida;
private JScrollPane painelTexto;
private BotaoPainel controles;
private Connection conecta;
private MontaTela mostraTela;
private String url;
public Fornecedores()
{
setTitle("Cadastro de Fornecedores");
Container tela = getContentPane();
mostraTela = new MontaTela();
saida = new JTextArea(2, 4);
tela.setLayout(new BorderLayout());
tela.add(new JScrollPane(mostraTela), BorderLayout.CENTER);
painelTexto = new JScrollPane(saida);
tela.add(painelTexto, BorderLayout.SOUTH);
controles = new BotaoPainel(conecta, mostraTela, saida);
tela.add(controles, BorderLayout.NORTH);
setSize(550, 350);
try
{
url = "jdbc:odbc:Fornecedores";
Class.forName("sun.jdbc.odbc.jdbcodbcdriver");
conecta = DriverManager.getConnection(url);
saida.append("Conexão Efetuada");
}
catch (ClassNotFoundException e)
{
saida.append("Não foi possível efetuar");
}
catch (SQLException d)
{
saida.append("Não foi possível criar o banco de dados");
}
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public static void main(String args[])
{
new Fornecedores().show();
}
}
Classe adicionaRegistro
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class adicionaRegistro implements ActionListener
{
private MontaTela campos;
private JTextArea saida;
private Connection conecta;
public adicionaRegistro(Connection c, MontaTela f, JTextArea o)
{
conecta = c;
campos = f;
saida = o;
}
public void actionPerformed(ActionEvent e)
{
try{
Statement executaSQL = conecta.createStatement();
if (!campos.Sobrenome.getText().equals("")&& !campos.Nome.getText().equals(""))
{
String query = "INSERT INTO Fornecedores(Nome, Sobrenome, Endereco, Cidade, Estado, Cep)"+
"VALUES('"+campos.Nome.getText()+"', '"+campos.Sobrenome.getText()+"', '"+campos.Endereco.getText()+
"','"+campos.Cidade.getText()+"','"+campos.Estado.getText()+"','"+campos.Cep.getText()+"')";
int result = executaSQL.executeUpdate(query);
if (result == 1)
{
saida.append("INSERIDO COM SUCESSO");
campos.Nome.setText("");
campos.Sobrenome.setText("");
campos.Endereco.setText("");
campos.Cidade.setText("");
campos.Estado.setText("");
campos.Cep.setText("");
}
else
{
saida.append("ERRO NA INCLUSÃO");
campos.Nome.setText("");
campos.Sobrenome.setText("");
campos.Endereco.setText("");
campos.Cidade.setText("");
campos.Estado.setText("");
campos.Cep.setText("");
}
}
else
{
JOptionPane.showMessageDialog(null, "PREENCHA OS CAMPOS","ATENÇÃO", JOptionPane.ERROR_MESSAGE);
executaSQL.close();
}
}
catch (SQLException sqlex)
{
sqlex.printStackTrace();
saida.append(sqlex.toString());
}
}
}
Classe MontaTela:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MontaTela extends JPanel{
private JPanel telaPanel;
private JLabel lCodigo, lNome, lSobrenome, lCidade, lEndereco, lEstado, lCep, Mensagem;
JTextField Codigo, Nome, Sobrenome, Endereco, Cidade, Estado, Cep;
public MontaTela(){
setLayout (null);
lCodigo = new JLabel ("Código");
lCodigo.setBounds(15,10,70,20);
add (lCodigo);
Codigo = new JTextField();
Codigo.setBounds(95,10,30,20);
Codigo.setEditable(false);
add (Codigo);
lNome = new JLabel ("Nome");
lNome.setBounds(15,40,70,20);
add (lNome);
Nome = new JTextField();
Nome.setBounds(95,40,300,20);
add (Nome);
lSobrenome = new JLabel ("Sobrenome");
lSobrenome.setBounds(15,70,70,20);
add (lSobrenome);
Sobrenome = new JTextField();
Sobrenome.setBounds(95,70,250,20);
add (Sobrenome);
lEndereco = new JLabel ("Endereco");
lEndereco.setBounds(15,100,70,20);
add (lEndereco);
Endereco = new JTextField();
Endereco.setBounds(95,100,400,20);
add (Endereco);
lCidade = new JLabel ("Cidade");
lCidade.setBounds(15,130,70,20);
add (lCidade);
Cidade = new JTextField();
Cidade.setBounds(95,130,200,20);
add (Cidade);
lEstado = new JLabel ("Estado");
lEstado.setBounds(15,160,70,20);
add (lEstado);
Estado = new JTextField();
Estado.setBounds(95,160,23,20);
add (Estado);
lCep = new JLabel ("Cep");
lCep.setBounds(15,190,70,20);
add (lCep);
Cep = new JTextField();
Cep.setBounds(95,190,70,20);
add (Cep);
Mensagem = new JLabel ("Formato de Preenchimento do Cep: 99999999");
Mensagem.setBounds(200,190,300,20);
add(Mensagem);
}
}
O erro pode estar no próprio phpmyadmin ou será um problema de conflito entre as veersões? (S.O. / IDE / JDK / JAR / WAMP)
Desde já, agradeço a colaboração de quem puder ajudar.