Pesquisa de dados feito pelo netbeans 7 + BD [TÓPICO RESOLVIDO]

10 respostas
O

Bom galera sou novo aqui no GUJ, espero estar postando no lugar certo. :smiley:

Estou com o seguinte problema, trabalho no departamento de educação de minha cidade, estou desenvolvendo em java um programa que adiciona e pesquisa alunos dos Estado e do Município. Já fiz todas os JFrames, Jlabels e tals, o que esta me faltando na verdade é o códio para pesquisar, tipo se eu for pesquisar por R.A ou pelo Nome do aluno, eu queria uma ajuda no código pois nao tenho ele pronto ainda, tipo pra mim colocar o r.a e ele automaticamente busca no banco, eu ja fiz a conexão com o banco de dados, já consegui visualizar um salvamento de dados, o que me falta na realidade é só o código para poder fazer a pesquisa(por r.a ou nome do aluno).

Peço desculpa pelo meu texto grande, espero que alguém do Fórum possa me ajudar, desde já fico agradecido.

Att. octos4

10 Respostas

F

Que banco de dados você utiliza?
Posta o código da conexão com o Banco de Dados, pra ficar mais fácil de achar um solução…

:slight_smile:

O
// COMANDOS QUE CRIAM CONEXÃO COM O BANCO DE DADOS.

    try {
        Class.forName("com.mysql.jdbc.Driver").getInterfaces();

        // Criação de uma variável denominada con;
        Connection con;

        //Criação da conexão com o Banco de Dados;
        con = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1/demococa", "root", "");

        // Criação da String para a inserção dos Dados;
        String query = "insert into cad_aluno(ra,nome,sobrenome,datanascimento,sexo,escola,endereco,cidade,estado,contato,transporte) "
                + "values (?,?,?,?,?,?,?,?,?,?,?)";

        //Criação do comando para inserção dee alunos através do jTextFields;
        PreparedStatement stmt = (PreparedStatement) con.prepareStatement(query);

        stmt.setInt(1, Integer.parseInt(jTextField1.getText()));
        stmt.setString(2, jTextField2.getText());
        stmt.setString(3, jTextField3.getText());
        stmt.setString(4, jTextField4.getText());
        stmt.setString(5, jComboBox2.getSelectedItem().toString()); //Transformar o Item em String;
        stmt.setString(6, jTextField6.getText());
        stmt.setString(7, jTextField7.getText());
        stmt.setString(8, jTextField8.getText());
        stmt.setString(9, jComboBox1.getSelectedItem().toString()); //Transformar o Item em String;
        stmt.setString(10, jTextField10.getText());
        stmt.setString(11, jTextField11.getText());

        stmt.execute();

        //Fechando as Conexões;
        stmt.close();
        con.close();


    } catch (ClassNotFoundException ex) {
        System.out.println("Não foi encontrado a Classe");
    } catch (SQLException e) {
        System.out.println("Ocorreu um erro de SQL");
        System.out.print("" + e.getMessage());
    }
}
F

Você pode criar uma SQL simples como por exemplo:

SELECT * FROM cad_aluno WHERE ra = '"+JTextField.getText(); //JTextField seria o campo onde está o que você está procurando e executar

SELECT (nome colunas que você deseja selecionar) FROM (nome tabela) WHERE (filtro) = (comparação com o dado fornecido na interface);

Crie um método que faça mais ou menos isso, acho que é maneira mais simples, mas talves você pode encontrar outras soluções melhores.

Abraço
Espero ter ajudado.

O

Muito Obrigadooo mesmo franzzita, vou tentar usar o método que você explicou.

Se der certo eu posto, caso contrario postarei se achar algum outro resultado.

Desde já agradeço muito.

O
// COMANDOS QUE CRIAM CONEXÃO COM O BANCO DE DADOS.

    try {
        Class.forName("com.mysql.jdbc.Driver").getInterfaces();

        // Criação de uma variável denominada con;
        Connection con;

        //Criação da conexão com o Banco de Dados;
        con = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1/demococa", "root", "");

        String query = "SELECT * FROM cad_aluno WHERE nome = ?";
        
        PreparedStatement cmd;
        
        cmd = (PreparedStatement) con.prepareStatement(query);
        
        cmd.setString(1, jTextField12.getText());
        
        ResultSet rs;

        rs = cmd.executeQuery();
        
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        
        model.setNumRows(0);
        
        while (rs.next()){
            
           model.addRow(
                   new Object[5]{
                      rs.getString("r.a"), 
                      rs.getString("escola"),
                      rs.getString("endereco"),
                      rs.getString("cidade"),
                      rs.getString("transporte")
                      
                              }
         );
          
    }

    } catch (ClassNotFoundException ex) {
        System.out.println("Não foi encontrado a Classe");
    } catch (SQLException e) {
        System.out.println("Ocorreu um erro de SQL");
        System.out.print("" + e.getMessage());
    }

}

franzzita eu to com o seguinte código acima descrito, ele ta dando erro no código que esta dentro do while que na verdade é o código pra mim poder exibir todo o conteudo dos alunos em um tabela. Queria que você desse uma olhada e se puder me ajudar nessa questao, acho que considero o meu trabalho concluído :D . Peço também que se você tiver um outro método para aparecer sem ser esse mais que se encaixe no meu modelo peço que se puder cite pra mim.

Tipo se eu coloco esse código aqui que é pra aparecer no console do NetBeans ele aparece a unica coisa que eu nao consigo é exibir os dados na tabela feita por mim no programa.

Código:
System.out.println("Nome:" + rs.getString("nome"));

Desde já agradeço.

Att. octos4

F

Olá,

Legal, então tenho um código aqui para preencher JTable, vou postar fazendo algumas modificações para o seu código e ai você testa pra mim e me fala o que deu.

// COMANDOS QUE CRIAM CONEXÃO COM O BANCO DE DADOS.  
  
    try 
    {  
          Class.forName("com.mysql.jdbc.Driver").getInterfaces();  
  
           // Criação de uma variável denominada con;  
           Connection con;  
  
           //Criação da conexão com o Banco de Dados;  
           con = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1/demococa", "root", "");  
  
            String query = "SELECT * FROM cad_aluno WHERE nome = ?";  
          
            PreparedStatement cmd;  
          
            cmd = (PreparedStatement) con.prepareStatement(query);  
          
            cmd.setString(1, jTextField12.getText());  
          
            ResultSet rs;  
  
            rs = cmd.executeQuery();  

            jTable1.getColumnModel().getColumn(0).setPreferredWidth(10); //aqui eu defino minha tabela recebe coluna 0 do tamanho 10
            jTable1.getColumnModel().getColumn(1).setPreferredWidth(30); //uma dessa para cada coluna que você tiver
            jTable1.getColumnModel().getColumn(2).setPreferredWidth(20);
            jTable1.getColumnModel().getColumn(3).setPreferredWidth(20);
            jTable1.getColumnModel().getColumn(4).setPreferredWidth(20);

            DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
            modelo.setNumRows(rs.getFetchSize()); //pega a quantidade de linhas do próprio objeto

            while(rs.next())
                modelo.addRow(new Object[] {rs.getString("r.a"), rs.getString("escola"), rs.getString("endereco"), rs.getString("cidade"), rs.getString("transporte")});

            rs.first();
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não foi possivel inserir dados na tabela de Alunos!"+erro);
        }
   }

Lembre-se você tem que ter a Tabela criado com as devidas colunas.
Qualquer coisa, posta o erro.

:)

O

Fraan quero lhe agradecer muito, pois com a sua ajuda eu consegui terminar um trabalho que durou quase 1 ano, pois também sou graduando em Ciência da Computação. Só tenho a lhe agradecer muito muito muito mesmo, muito obrigado. :smiley:

F

octos4:
Fraan quero lhe agradecer muito, pois com a sua ajuda eu consegui terminar um trabalho que durou quase 1 ano, pois também sou graduando em Ciência da Computação. Só tenho a lhe agradecer muito muito muito mesmo, muito obrigado. :smiley:

Poxa, que isso, fico muito feliz que tenha dado certo!
Eu também já tive altas ajudas aqui e isso é muito bom…

Um abraço e boa sorte!
:slight_smile:

O

Fraan tenho só mais uma duvidazinha, desculpa enxe um pouco ae, mas tem como você definir um tamanho padrão para todas as caixas de dialogos?

Vlws :smiley:

F

Octos4,

Então, essa vou ficar te devendo…
Não tenho certeza quanto a isso… pois nunca utilizei…
Sei que tem como você definir o local na tela onde vai aparecer a caixa…

Da uma olhada nesse site e da mais uma pesquisa…

http://www.ebah.com.br/content/ABAAAAcxUAA/classe-joptionpane-java

Qualquer dúvida…
Estou a disposição, um abraço!

Criado 6 de dezembro de 2011
Ultima resposta 9 de dez. de 2011
Respostas 10
Participantes 2