[dúvida] applet e banco de dados

4 respostas
D

Estou com uma dúvida de como conectar um applet em um banco.

Pelo menos este não está dando certo não.

Vejam o código:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JOptionPane;

public class AppletJDBCDrop extends JApplet implements ActionListener {

  private Connection connection;

  private JList tableList;

  private JButton dropButton;

  public void init() {
    Connection connection;
    try { 
      Class.forName("org.gjt.mm.mysql.Driver").newInstance();
      //ou com.mysql.jdbc.Driver
      connection = 
      DriverManager .getConnection("jdbc:mysql://localhost/banco?user=root&password=2017");
       JOptionPane.showMessageDialog(null,"Conectado!"); 
       
    } catch (Exception connectException) {
        JOptionPane.showMessageDialog(null,"Não conectado!",
        "", JOptionPane.ERROR_MESSAGE);
      connectException.printStackTrace();
    }

    Container c = getContentPane();
    tableList = new JList();
    //loadTables();
    c.add(new JScrollPane(tableList), BorderLayout.NORTH);

    dropButton = new JButton("select Table");
    dropButton.addActionListener(this);
    c.add(dropButton, BorderLayout.SOUTH);
  }

  public void actionPerformed(ActionEvent e) {
    try {
      Statement statement = connection.createStatement();
      ResultSet rs = statement.executeQuery("select * from db;"
          + tableList.getSelectedValue());
    } catch (SQLException actionException) {
    }
  }

 
    private void loadTables() {
    Vector v = new Vector();
    try {
      Statement statement = connection.createStatement();
      ResultSet rs = statement.executeQuery("SHOW db");

      while (rs.next()) {
        v.addElement(rs.getString(1));
      } 
      
      rs.close();
      
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "Não deu certo!",
        "", JOptionPane.ERROR_MESSAGE);
    } 
    
  
    v.addElement("acc_acc");
    v.addElement("acc_add");
    v.addElement("junk");
    tableList.setListData(v);
    
    
  }
}

Veja o que acontece toda vez:

[img]http://i26.tinypic.com/2vl5g8k.gif[/img]

[img]http://i30.tinypic.com/2lubfxh.gif[/img]

Espero que possam me ajudar.

Obrigado.

4 Respostas

Pablo_Eteg

Cara para abrir conexão com o banco de dados,
acessar arquivos, ou realizar qualquer tarefa de IO
através de um applet este precisa ser assinado.

D

Como assim?

Explica melhor, pois este é meu primeiro exemplo de código com banco de dados.

Obrigado.

T

Se você puder, não use applets para conectar-se a bancos de dados. Dá tanto problema e dor de cabeça* que é melhor usar uma aplicação normal (aquelas com “public static void main”).
Se sua aplicação obrigatoriamente tem de ser uma applet e tem de se conectar a um banco de dados, não faça a conexão diretamente a partir de sua applet. Crie uma página JSP / ASPX / PHP ( ou sei lá o que você achar melhor ) que faça as consultas, atualizações etc. que têm de ser feitas no banco, e faça a sua applet chamar essa página (via URLConnection).

  • Eu digo e repito: não use applets que chamam diretamente o banco de dados.
D

Ué, mas só que tenho que fazer, então tenho que aprender isso.

Criado 25 de maio de 2008
Ultima resposta 27 de mai. de 2008
Respostas 4
Participantes 3