Problemas com Banco de dados

1 resposta
kmunga

Bom, fazendo um pesquisador de banco de dados com fins didáticos, criei um codigo mas no entando ele não funciona como gostaria. A logica funciona assim, o usuário digita um codigo (no meu caso eu digito um que eu conheça já) e o codigo e o nome do filme apareceriam na tele. Criei um método separado para conexão, porem esse não apresenta problemas, o problema esta em exatamente na hora de procurar o codigo e exibi-lo na tela.

o codigo é este

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

public class GuiAdicionaBD extends JFrame{

  private JButton botao1;
  private JLabel lb1,lb2,lb3,lbStatus,lbCodigo,lbFilme;
  private JTextField tfPesquisa;


  public GuiAdicionaBD(){
    inicializarComponentes();
    definirEventos();
  }

  private void inicializarComponentes() {
    setLayout(null);
    setBounds(0,0,600,600);
    tfPesquisa=new JTextField("");
    tfPesquisa.setBounds(20,20,100,50);    
    botao1 = new JButton("Pesquisar");
    botao1.setBounds(150,50,100,50);
    lb1=new JLabel("Resultado:");
    lb1.setBounds(20,150,100,50);
    lb2=new JLabel("Codigo");
    lb2.setBounds(20,220,100,50);
    lb3=new JLabel("Filme");
    lb3.setBounds(120,220,300,50);
    lbCodigo=new JLabel("");
    lbCodigo.setBounds(20,270,100,50);
    lbFilme=new JLabel("");
    lbFilme.setBounds(120,220,300,50);
    lbStatus=new JLabel("Status:");
    lbStatus.setBounds(20,400,400,50);
    add(tfPesquisa); 
    add(botao1);
    add(lb1);
    add(lb2);
    add(lbCodigo);
    add(lb3);
    add(lbFilme);
    add(lbStatus);   
  }

  private void definirEventos(){
    botao1.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
         BD bd=new BD();
         if (bd.getConnection()){
           try {
             String sql="SELECT codigo,titulo FROM filmes WHERE codigo = ?";
             PreparedStatement statement=bd.connection.prepareStatement(sql);
             String cd=tfPesquisa.getText();
             JOptionPane.showMessageDialog(null,tfPesquisa.getText());
             statement.setString(1,cd);      
             ResultSet resultSet=statement.executeQuery();
             lbCodigo.setText(resultSet.getString("codigo"));
             lbFilme.setText(resultSet.getString("titulo"));
             resultSet.close();
             statement.close();
             bd.close();
             lbStatus.setText("Status: Conectou");
           }
           catch(SQLException erro){
             lbStatus.setText("Status: Falhou ao acessar o banco de dados");
           }
         }
         else 
           lbStatus.setText("Status: Falhou em conectar");
        }
    });
  }

  public static void main(String [] args){
    JFrame frame=new GuiAdicionaBD();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true); 
  } 

}

obrigado

1 Resposta

A

uma pequena alteração. Complete esse trecho:

lbCodigo.setText(resultSet.getString("codigo"));  
lbFilme.setText(resultSet.getString("titulo"));

ficando assim:

while(resultSet.next()){
   lbCodigo.setText(resultSet.getString("codigo"));  
   lbFilme.setText(resultSet.getString("titulo"));
}
Criado 10 de junho de 2012
Ultima resposta 10 de jun. de 2012
Respostas 1
Participantes 2