Ola pessoal, recentemente algumas pessoa vem me perguntando se é possível exibir o conteúdo de uma tabela MySql em tabelas Java (JTable).
Então decidi deixar aqui o Código de como lincar um tabela do banco de dados com uma tabela em java, deixarei o código comentado o máximo possível.
primeiramente você deve ter um cliente mysql instalado e de preferencia uma interface visual (workbench), para facilitar nossa vida. Mas enfim, vou deixar aqui o código em mysql de criação de uma tabela simples para que possamos usar em nosso exemplo.
Criando tabela MySql
CREATE TABLE lista (
nome varchar(10) not null,
tipo varchar(10) not null,
marca varchar(10) not null)
Agora vamos colocar alguma coisa na tabela para que seja exibo na nossa JTable.
INSERT INTO lista VALUES ( 'pera', 'fruta', 'frutaqui' )
Com o comando acima estamos criando uma tabela chamada lista onde há três colunas:
nome ( nome dos intens da lista )
tipo ( tipo dos intens)
marca ( marca dos intens )
e inserindo
nome: pera
tipo: fruta
marca: frutaqui
Pronto criamos a tabela que queremos exibir posteriormente como java, podemos esquece ela por enquanto, e vamos ao código java.
criando código java
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import br.com.cbanco.conexao.conexao;
import javax.swing.JTextPane;
import javax.swing.UIManager;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class tabelalista extends JFrame {
public tabelalista() {
super ("JTable");
getContentPane().setBackground(UIManager.getColor("Button.focus"));
setTitle("Tabela");
final DefaultTableModel modelo = new DefaultTableModel();
// constrói a tabela
JTable tabela = new JTable(modelo);
// Cria colunas da tabela JAVA
modelo.addColumn("nome"); // nome dos campos da tabela igual a tabela
modelo.addColumn("tipo"); //em mysql
modelo.addColumn("marca");
/* Abrindo conexão com o banco de dados
* código para criar classe de conexão
* aqui > Banco <
*/
conexao banco = new conexao(); // instanciando classe de conexão
try {
banco.AbrirConexao();
banco.stmt= banco.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String query;
// Código sql que fara ser exibida tudo que houver em nossa lista
query = "SELECT * FROM lista";
banco.resultset = banco.stmt.executeQuery(query);
// pegando dados da tabela
while(banco.resultset.next()){
String nome = banco.resultset.getString("nome");
String tipo = banco.resultset.getString("tipo");
String marca = banco.resultset.getString("marca");
modelo.addRow(new Object[]{nome, tipo, marca});
}
// fim procedimento para obter os dados
} catch (SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} catch(Exception ec){
System.out.println("Problemas ao tentar conectar com o banco de dados");
}
tabela.setPreferredScrollableViewportSize(new Dimension(575, 500));
Container c = getContentPane();
getContentPane().setLayout(null);
// adicionando uma barra de rolagem
JScrollPane scrollPane = new JScrollPane(tabela);
scrollPane.setBounds(12, 12, 565, 503);
c.add(scrollPane);
setSize(596, 601); // tamanho da tabela
setVisible(true); // torna tabela visível
}
public static void main(String args[]){
tabelalista app = new tabelalista();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // executa a tabela.
}
}
Pronto! Com isso sera exibido uma tabela em java, utilizando dados do mysql, tudo que for alterado na tabela sql será alterado também no java.
ola estou com dificuldade de fazer a classe conexao teria como me fornecer o codigo ou me dar uma força email - pauloetec@bol.com.br
ResponderExcluir