Exibir resultado de consulta com o banco no JTextField
Tudo bom pessoa, bom sou novo, estou com um grande problema com meu programa em java, é para projeto da faculdade ainda.
Então o problema é, que preciso retornar os dados da consulta do banco no JtextField, fazer uma pesquisa pelo botão pesquisar e retornar os resultados nos TextField certos. o nome no TextField nome e assim por diante.
Já tenho conexão com o banco, tudo feito, faz inserção de dados, só estou com este problema agora não consigo retornar os resultados nos TextField.
Vi alguns exemplos aqui no forum mais não estou conseguindo, se alguem poder ajudar agradeço muito.
Desde já agradeço.
Mario Alves
Curtidas 0
Respostas
Mauricio Narcizo
23/11/2011
posta o código que voce fez, para sabermos onde voce está com dificuldades e possiveis erros...
GOSTEI 0
Kelvin Bianchi
23/11/2011
seuTextfield.setText(seuObjetoResultSet.getString(posiçãodoBD));
GOSTEI 0
Mario Alves
23/11/2011
private void BT_Pesquisar1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String query = "SELECT nome,cpf FROM cliente " +
"WHERE cpf = '" +
TF_Pesquisa.getText() + "'";
PreparedStatement stat = con_Cadastro.conexao.prepareStatement(query);
ResultSet rs = stat.executeQuery( query );
display( rs );
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(
null, sqlex.toString() + "" + 1 , "Aviso",
JOptionPane.WARNING_MESSAGE );
}
try {
rs.next();
int recordNumber = rs.getInt( 1 );
if ( recordNumber != 0 ) {
TF_Nome.setText( String.valueOf( recordNumber));
TF_CPF.setText( rs.getString( 2 ) );
}
else{
JOptionPane.showMessageDialog(
null, "Registro não encontrado!!" , "Aviso",
JOptionPane.WARNING_MESSAGE );
}
}
catch (SQLException erros)
{
erros.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao gravar registro. " + erros);
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(
null, "Registro não encontrado!!" , "Aviso",
JOptionPane.WARNING_MESSAGE );
}
} GOSTEI 0
Giverson Ortiz
23/11/2011
Esse exemplo pode te ajudar eu acho...
public void atualiza(){
String comando = "select * from tabela .....";
try {
PreparedStatement prep = retornaConexao().prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
ResultSet rs = prep.executeQuery();
rs.next();
exp = rs.getInt("coluna"); //se for Varchar ou char usa rs.getString
} catch (SQLException e){
JOptionPane.showMessageDialog(null, "Ops, ocorreu um erro!");
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
GOSTEI 0
Mario Alves
23/11/2011
[quote="giverson"]Esse exemplo pode te ajudar eu acho...
Estou implementando esse, mais agora me desculpa a ignorância, mas para mostrar o código no TextField como seria?
huashauhs sou péssimo em Programação...trabalho com banco de dados,mas preciso fazer isso, projeto da faculdade.
public void atualiza(){
String comando = "select * from tabela .....";
try {
PreparedStatement prep = retornaConexao().prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
ResultSet rs = prep.executeQuery();
rs.next();
exp = rs.getInt("coluna"); //se for Varchar ou char usa rs.getString
} catch (SQLException e){
JOptionPane.showMessageDialog(null, "Ops, ocorreu um erro!");
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
GOSTEI 0
Giverson Ortiz
23/11/2011
Bem, ali no exemplo a variavel exp ta recebendo o valor da coluna do banco, sendo assim, digamos que ela não está mais nula, então, primeiro você testa com System.out.println("Testando"+exp); Se ele estiver pegando certinho você pode fazer assim
seucampodetexto.setText(exp);//claro que ali no exp vai ser outra variavel, tenta ai...
[Edit] Se o seu campo de texto estiver em outra classe, não esquece de chamar o metodo né..
GOSTEI 0
Mario Alves
23/11/2011
Muito Obrigado.
Consegui, já está retornando nos TextField.
Muito Obrigado pela ajuda.
Mário.
GOSTEI 0
Cleber Souza
23/11/2011
O que está errado aki cara
public void mostrarId(){
try{
sql = "SELECT MAX(idcliente) FROM cadastrocliente";
PreparedStatement stmt = bd.connection.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
rs.next();
int valor = (rs.getInt("idcliente"));
txtCodigoCliente.setText(""+valor);
}catch(SQLException e){
JOptionPane.showMessageDialog(this, ""+e);
}
}
GOSTEI 0
Carlos H
23/11/2011
[quote="souzacleber"]O que está errado aki cara
provavelmente não abriu a conexão ao banco,
ou não criou a instância de bd...
public void mostrarId(){
try{
sql = "SELECT MAX(idcliente) FROM cadastrocliente";
PreparedStatement stmt = bd.connection.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
rs.next();
int valor = (rs.getInt("idcliente"));
txtCodigoCliente.setText(""+valor);
}catch(SQLException e){
JOptionPane.showMessageDialog(this, ""+e);
}
}
GOSTEI 0
César Barros
23/11/2011
Acho que está ocorrendo comigo a falha q Giverson relatou previamente: meu campo está em outra classe(acho).
Sou muito iniciante em java! Como poderia fazer para chamar esse método? Já testei meus comandos com System.out e deu certo o problema agora é fazer aparece no Jtextfield.
Outra coisa: como faço para q na consulta seja ignorado case sensitive e consiga qualquer parte do texto?
Meu programa está dividido em pacotes:Conexão,DAO,Telas,Modelos...
package dao;
import factory.ConnectionFactory;
import java.sql.*;
import modelo.Doenca;
import java.sql.PreparedStatement;
/**
*
* @author César
*/
public class BuscaDoeDAO {
private Connection connection;
public BuscaDoeDAO(){
this.connection=new ConnectionFactory().getConnection();
}
public void buscaDoe(Doenca doenca) throws SQLException{
PreparedStatement stmt=(PreparedStatement) this.connection.prepareStatement("SELECT * FROM doenca WHERE patol LIKE ?");
stmt.setString(1, doenca.getPatol()+"%");
ResultSet rs=stmt.executeQuery();
while(rs.next()){
doenca.setPatol(rs.getString("patol"));
System.out.println(rs.getString("patol"));
}
rs.close();
stmt.close();
connection.close();
}
}
GOSTEI 0