Ir ao conteúdo
  • Cadastre-se

Mostrar dados ao inserir no banco de dados


Ir à solução Resolvido por Davi Nascimento_770787,

Posts recomendados

Bom dia galera,

 

quero que ao clicar em um botão "gravar dados", os dados sejam inseridos em um banco de dados e que ao mesmo tempo seja mostrado em uma relação abaixo do botão clicado.

 

Acontece que eu estou conseguindo enviar os dados para o banco, entro no banco mando visualizar e os dados digitados estão lá, no entanto, não estou sabendo como faço para mostrar os dados digitados.

 

Estou tentando usar um campo JTextArea para visualizar os dados, mas nada. Alguém pode me dar uma dica?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Boa noite. Preciso saber em que 'pé' você está. Não vejo códigos, não vejo o banco, nem nada.


Seu problema é só no textarea? Outros componentes recebem dados do BD corretamente? Teste um label por exemplo.

 

labelnome.setText(String.valueOf(variável...));

Link para o comentário
Compartilhar em outros sites

Foi mal não ter postado os códigos antes, segue abaixo:

 

package atividademoduloix;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Execucao extends JFrame implements ActionListener {

    JTextField jMatricula = new JTextField();
    JTextField jNome = new JTextField();
    JTextField jCurso = new JTextField();
    JButton jb1 = new JButton();
    JTextArea jRelatorio = new JTextArea();

    public Execucao() {
        this.setLocation(250, 50);
        this.setSize(600, 800);
        this.setLayout(null);
        this.setTitle("Inserindo Dados no Banco");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

        //Caixas de Texto
        jMatricula.setLocation(80, 20);
        jMatricula.setSize(150, 20);
        jNome.setLocation(80, 50);
        jNome.setSize(150, 20);
        jCurso.setLocation(80, 80);
        jCurso.setSize(150, 20);

        //Etiquetas
        JLabel jlb1 = new JLabel("Matrícula: ");
        jlb1.setLocation(10, 20);
        jlb1.setSize(100, 20);

        JLabel jlb2 = new JLabel("Nome: ");
        jlb2.setLocation(10, 50);
        jlb2.setSize(100, 20);

        JLabel jlb3 = new JLabel("Curso: ");
        jlb3.setLocation(10, 80);
        jlb3.setSize(100, 20);

        //Botão
        jb1.setLocation(330, 40);
        jb1.setSize(150, 30);
        jb1.setText("Grava Dados");
        jb1.addActionListener(this);

        //Área de visualização
        jRelatorio.setVisible(false);
        jRelatorio.setLocation(100, 120);
        jRelatorio.setSize(400, 500);

        this.add(jMatricula);
        this.add(jNome);
        this.add(jCurso);
        this.add(jlb1);
        this.add(jlb2);
        this.add(jlb3);
        this.add(jb1);
        this.add(jRelatorio);
    }

    @override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jb1) {
            try {
                //Conexão ao servidor de Banco de Dados
                Class.forName("org.gjt.mm.mysql.Driver");

                //Cria conexão ao banco schema "aula"   
                Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/aula", "root", "");

                //Consulta o banco de dados    
                Statement st = cn.createStatement();

                PreparedStatement pst;
                String matricula = "INSERT INTO aula.alunos (matricula, nome, curso) VALUES (?,?,?)";
                pst = cn.prepareStatement(matricula);
                pst.setString(1, jMatricula.getText());
                pst.setString(2, jNome.getText());
                pst.setString(3, jCurso.getText());
                pst.executeUpdate();
                jMatricula.setText(null);
                jNome.setText(null);
                jCurso.setText(null);

                ResultSet rs = st.executeQuery("select * from alunos");

                while (rs.next()) {
                    jRelatorio.setText(jRelatorio.getText() + "Matrícula: " + rs.getString(1) + "Nome: "
                            + rs.getString(2) + "Curso: " + rs.getString(3) + "/n/n");
                    jRelatorio.setVisible(true);
                }
                cn.close();
                st.close();

            } catch (ClassNotFoundException f) {
                JOptionPane.showMessageDialog(null, "Erro ao conectar: " + f.getMessage());
            } catch (SQLException f) {
                JOptionPane.showMessageDialog(null, "Erro de SQL: " + f.getMessage());
            }
        }
    }

    public static void main(String[] args) throws SQLException {
        new Execucao().setVisible(true);

    }
}

 

Eu queria que fosse exibido igual abaixo, mas não estou conseguindo:

 

MATRÍCULA       NOME             CURSO

===============================

1                         Pedro              Info

2                         José                Alemão

Link para o comentário
Compartilhar em outros sites

O problema seria com a formatação do texto na tela?

 

Ve se é isso: http://examples.javacodegeeks.com/core-java/lang/string/java-string-format-example/

 

Testei rapidinho desse jeito:

 

String coluna = "%-12s%-12s%-12s";
System.out.println(coluna.format(coluna, "MATRICULA", "NOME", "CURSO"));
System.out.println("==============================================");
System.out.println(coluna.format(coluna, "1", "PEDRO", "Info"));
Link para o comentário
Compartilhar em outros sites

  • Solução

O problema é que tenho que buscar esses dados dentro do banco de dados,

por isso não estou conseguindo como fazer com que ao clicar no botão gravar dados,

os dados sejam inseridos no banco de dados e visualizados na JTextArea

 

Até que consigo enviar para o banco e ele ficam armazenados, mas não são mostrados


Eu fiz as alterações abaixo e agora estou visualizando os dados ao clicar no botão, no entanto, ainda não está certo, pois ele vai duplicando o que já está inserido no banco de dados.

 

               String matricula = "INSERT INTO aula.alunos (matricula, nome, curso) VALUES (?,?,?)";
                pst = cn.prepareStatement(matricula);
                pst.setString(1, jMatricula.getText());
                pst.setString(2, jNome.getText());
                pst.setString(3, jCurso.getText());
                pst.executeUpdate();
                jMatricula.setText(null);
                jNome.setText(null);
                jCurso.setText(null);
                ResultSet rs = st.executeQuery("select * from alunos");
                while (rs.next()) {
                    jRelatorio.setText(jRelatorio.getText()
                            + rs.getString(1)+"                        "
                            + rs.getString(2)+"                     "
                            + rs.getString(3) + "\n");
                    jRelatorio.setVisible(true);
                }
 

Link para o comentário
Compartilhar em outros sites

Estanho quando executo aqui, aparece assim:

 

MATRÍCULA:        NOME:              CURSO:              
==================================================
1                        Brasil                     Info
1                        Brasil                     Info
2                        Pedro                     Java
1                        Brasil                     Info
2                        Pedro                     Java
3                        José                     PHP

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!