Pesquisa de dados feito pelo netbeans 7 + BD [TÓPICO RESOLVIDO]
10 respostas
O
octos4
Bom galera sou novo aqui no GUJ, espero estar postando no lugar certo.
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.
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…
O
octos4
// 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;Connectioncon;//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;Stringquery="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;PreparedStatementstmt=(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(ClassNotFoundExceptionex){System.out.println("Não foi encontrado a Classe");}catch(SQLExceptione){System.out.println("Ocorreu um erro de SQL");System.out.print(""+e.getMessage());}}
F
franzzita
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
octos4
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
octos4
//COMANDOSQUECRIAMCONEXÃOCOMOBANCODEDADOS.try{Class.forName("com.mysql.jdbc.Driver").getInterfaces();//Criaçãodeumavariáveldenominadacon;Connectioncon;//CriaçãodaconexãocomoBancodeDados;con=(Connection)DriverManager.getConnection("jdbc:mysql://127.0.0.1/demococa","root","");Stringquery="SELECT * FROM cad_aluno WHERE nome = ?";PreparedStatementcmd;cmd=(PreparedStatement)con.prepareStatement(query);cmd.setString(1,jTextField12.getText());ResultSetrs;rs=cmd.executeQuery();DefaultTableModelmodel=(DefaultTableModel)jTable1.getModel();model.setNumRows(0);while(rs.next()){model.addRow(newObject[5]{rs.getString("r.a"),rs.getString("escola"),rs.getString("endereco"),rs.getString("cidade"),rs.getString("transporte")});}}catch(ClassNotFoundExceptionex){System.out.println("Não foi encontrado a Classe");}catch(SQLExceptione){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
franzzita
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.
//COMANDOSQUECRIAMCONEXÃOCOMOBANCODEDADOS.try{Class.forName("com.mysql.jdbc.Driver").getInterfaces();//Criaçãodeumavariáveldenominadacon;Connectioncon;//CriaçãodaconexãocomoBancodeDados;con=(Connection)DriverManager.getConnection("jdbc:mysql://127.0.0.1/demococa","root","");Stringquery="SELECT * FROM cad_aluno WHERE nome = ?";PreparedStatementcmd;cmd=(PreparedStatement)con.prepareStatement(query);cmd.setString(1,jTextField12.getText());ResultSetrs;rs=cmd.executeQuery();jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);//aquieudefinominhatabelarecebecoluna0dotamanho10jTable1.getColumnModel().getColumn(1).setPreferredWidth(30);//umadessaparacadacolunaquevocêtiverjTable1.getColumnModel().getColumn(2).setPreferredWidth(20);jTable1.getColumnModel().getColumn(3).setPreferredWidth(20);jTable1.getColumnModel().getColumn(4).setPreferredWidth(20);DefaultTableModelmodelo=(DefaultTableModel)jTable1.getModel();modelo.setNumRows(rs.getFetchSize());//pegaaquantidadedelinhasdopróprioobjetowhile(rs.next())modelo.addRow(newObject[]{rs.getString("r.a"),rs.getString("escola"),rs.getString("endereco"),rs.getString("cidade"),rs.getString("transporte")});rs.first();}catch(SQLExceptionerro){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
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.
F
franzzita
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.
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!
O
octos4
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
F
franzzita
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…