Problema ao Conectar no Mysql/JDBC

3 respostas
peerless

Bom dia galera, é o seguinte, eu tenho o seguinte código, que achei por ai, navegando:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;  // puxar os eventos para o banco

public class Agenda extends JFrame
{
 //atributos
 private JLabel l1,l2,l3,l4;
 private JTextField tf1,tf2,tf3,tf4;
 private JButton B_ins, B_sair,B_alte,B_excl;
 private Connection con; //objeto do tipo coneções
 private Statement st; // objeto para enviar as instruções para o banco (statement)
                       // posso usar os prepared statement que prepara antes de enviar
 private ResultSet rs; // as instruções vão voltar no result - se for selecaoou consulta

 // metodo construtor
 public Agenda()
 {
   this.getContentPane().setLayout(null);
   l1=new JLabel();
   l1.setBounds(10,10,80,20);
   l1.setText("Código");
   this.getContentPane().add(l1);

   l2=new JLabel();
   l2.setBounds(10,30,80,20);
   l2.setText("Nome");
   this.getContentPane().add(l2);

   l3=new JLabel();
   l3.setBounds(10,50,80,20);
   l3.setText("Fone");
   this.getContentPane().add(l3);

   l4=new JLabel();
   l4.setBounds(10,70,80,20);
   l4.setText("Email");
   this.getContentPane().add(l4);

   tf1=new JTextField();
   tf1.setBounds(100,10,80,20);
   this.getContentPane().add(tf1);

   tf2=new JTextField();
   tf2.setBounds(100,30,80,20);
   this.getContentPane().add(tf2);

   tf3=new JTextField();
   tf3.setBounds(100,50,80,20);
   this.getContentPane().add(tf3);

   tf4=new JTextField();
   tf4.setBounds(100,70,80,20);
   this.getContentPane().add(tf4);

   B_ins=new JButton();
   B_ins.setBounds(100,180,80,20);
   B_ins.setText("INCLUIR");
   B_ins.addActionListener(new ActionListener ()
      // em java qq evento é definido atraves de interface
   {
     public void actionPerformed(ActionEvent e)
     {
       inserir(e);
     }
   });
   this.getContentPane().add(B_ins);
   B_alte=new JButton();     //instancio o botao alterar
   B_alte.setText("Alterar");
   B_alte.setBounds(100,220,80,20);
   B_alte.addActionListener(new ActionListener()
   {
      public void actionPerformed(ActionEvent e)
      {
        Alterar();
      }
   });
     this.getContentPane().add(B_alte);
   B_excl=new JButton();
   B_excl.setBounds(100,200,80,20);
   B_excl.setText("Excluir");
   B_excl.addActionListener(new ActionListener()
   {
     public void actionPerformed(ActionEvent e)
     {
       Excluir();
     }
    });
     this.getContentPane().add(B_excl);
   B_sair=new JButton();
   B_sair.setBounds(100,160,80,20);
   B_sair.setText("SAIR");
   B_sair.addActionListener(new ActionListener ()
   {
     public void actionPerformed (ActionEvent e)
     {
        System.exit(0);
     }
   });

   this.getContentPane().add(B_sair);
 }//fim Construtor
 public void Alterar()
 {
   try
 {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   con=DriverManager.getConnection("jdbc:odbc:agejava");
   st=con.createStatement();
   String sql="Update dados set nome='"+tf2.getText();
   sql+="',endereco='"+tf3.getText()+"',email='";
   sql+=tf4.getText()+"'where codigo="+tf1.getText();
   st.execute(sql);
   con.close();
  }
  catch(Exception ex)
    {
      System.out.println("Erro ao Alterar");
     }
 }
 public void Excluir()
 {
   try
  {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con=DriverManager.getConnection("jdbc:odbc:agejava");
    st=con.createStatement();
    st.execute("delete from dados where codigo="+tf1.getText());
    con.close();
    }
     catch(Exception ex)
    {
      System.out.println("Erro ao Excluir");
     }
 }
 public void inserir(ActionEvent e)
 {
   try
 { //Aqui ele dá a exceção: 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // verifica se existe
     con=DriverManager.getConnection("jdbc:odbc:agejava");
     st=con.createStatement();
     String sql="insert into dados(codigo,nome,fone,email) values (";
     sql+=tf1.getText()+",'";
     sql+=tf2.getText()+"','";
     sql+=tf3.getText()+"','";
     sql+=tf4.getText()+"')";
     st.execute(sql);
     con.close();
   }catch(Exception ex)
    {
      System.out.println("Erro ao Inserir");
     }
 }

 public static void main (String args[])
 {
  Agenda Age = new Agenda();
  Age.show();
}
}//fim da Classe

Eu ja adicionei à pasta: Lib do JRE, as bibliotecas do Java Conector e do JDBC (.jar's), e também, ja criei a tabela AGENDA no konsole utilizando o mysql...

sou novato ainda,
então minha dúvida é: O que devo fazer para funcionar este código ?

Obgd, abraços......... :lol:

3 Respostas

dbispo

Seguinte…

Seria melhor vc seguir algum tutorial…

http://www.javafree.org/javabb/viewtopic.jbb?t=8838

Ah, e utilize as tags code para postar o código:
http://www.guj.com.br/posts/list/50115.java

Abraços

T

“konsole”? Se você está usando o Linux então o ODBC não vai funcionar. Você teria de usar uma outra URL para conectar-se com o banco.

Acho que você quis dizer “console”. Mesmo assim, é muito mais eficiente (e acho que você acha suporte melhor aqui no fórum) usar a conexão direta ao MySQL, que usar o ODBC.

A classe a ser usada é outra, não “com.sun.odbc”; procure aqui no fórum a string de conexão (URL) correta.

peerless

Hm, obrigado… mas se alguém souber já, ficaria grato se postar aqui… de qualquer forma, vou atras sim, assim como estou ja a manhã toda…

escrevi “konsole” pq é assim que está no linux, costume de digitar isso pra abrir a shell no “run command”… valeu !!!

abraços

Criado 23 de janeiro de 2007
Ultima resposta 23 de jan. de 2007
Respostas 3
Participantes 3