Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com consulta


EMSO.EXE

Pergunta

Pessoal estou com um problema ao criar projeto java, cadastro de livros, estou conseguindo inserir dados, porém não consigo inserir os dados localizados no textfield (tf2, tf3, etc) segue o código. Alguém por favor me diz o que estou errando.

O ERRO ESTÁ EM LIVRODAL NO MÉTODO public static void consultaUmLivro(Livro umlivro)

LIVROIHM

import javax.swing.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.event.*;


class LivroIHM extends JFrame implements ActionListener
{
private JLabel  l1=new JLabel("Titulo.:");
private JLabel  l2=new JLabel("Autor.:");
private JLabel  l3=new JLabel("Editora.:");
private JLabel  l4=new JLabel("Ano Edicao.:");
private JLabel  l5=new JLabel("Localizacao.:");
private JTextField tf1=new JTextField();
private JTextField tf2=new JTextField();
private JTextField tf3=new JTextField();
private JTextField tf4=new JTextField();
private JTextField tf5=new JTextField();
private JButton b1=new JButton("Salvar");
private JButton b2=new JButton("Ler");
private JButton b3=new JButton("Limpar");
private JPanel p1=new JPanel(new GridLayout(5,2));
private JPanel p2=new JPanel(new GridLayout(1,3));

private Livro umlivro = new Livro();

LivroIHM(String titulo, int largura, int altura)
  {
  setTitle(titulo);
  setSize(largura,altura);
  setLayout(new BorderLayout());
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  b1.addActionListener(this);
  b2.addActionListener(this);
  b3.addActionListener(this);

  p1.add(l1);
  p1.add(tf1);
  p1.add(l2);
  p1.add(tf2);
  p1.add(l3);
  p1.add(tf3);
  p1.add(l4);
  p1.add(tf4);
  p1.add(l5);
  p1.add(tf5);

  p2.add(b1);
  p2.add(b2);
  p2.add(b3);

  add(p1,BorderLayout.CENTER);
  add(p2,BorderLayout.SOUTH);
  }

public void actionPerformed(ActionEvent e)
  {
  if (e.getSource()==b1)
    {
    umlivro.setTitulo(tf1.getText());
    umlivro.setAutor(tf2.getText());
    umlivro.setEditora(tf3.getText());
    umlivro.setAnoEdicao(tf4.getText());
    umlivro.setLocalizacao(tf5.getText());
    LivroBLL.validaDados(umlivro);
    if (LivroBLL.getErro())
       JOptionPane.showMessageDialog(null,LivroBLL.getMens());
    }
  else
    if (e.getSource()==b2)
      {
      tf1.setText(umlivro.getTitulo());
      tf2.setText(umlivro.getAutor());
      tf3.setText(umlivro.getEditora());
      tf4.setText(umlivro.getAnoEdicao());
      tf5.setText(umlivro.getLocalizacao());
      }
    else
      if (e.getSource()==b3)
        {
        tf1.setText("");
        tf2.setText("");
        tf3.setText("");
        tf4.setText("");
        tf5.setText("");
        }
  }
}
LIVRODAL
import java.sql.*;

public class LivroDAL {

private static boolean erro;
private static String mens;
private static Connection con;

public static void conecta(String _alias, String _usuario, String _senha)
{
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:" + _alias,_usuario,_senha);
    }
    catch(Exception e){
        System.out.println("Erro: " + e.getMessage());
    }
}

public static void desconecta()
{
    try{
    con.close();
    }
    catch(Exception e){
        System.out.println("Erro: " + e.getMessage());
    }
}

public static void inseriUmLivro(Livro umlivro)
{
    try {
        conecta("UmAlias","","");
        PreparedStatement st = con.prepareStatement("INSERT INTO TabLivros (titulo,autor,editora,anoedicao,localizacao) Values (?,?,?,?,?)");
        st.setString(1,umlivro.getTitulo());
        st.setString(2,umlivro.getAutor());
        st.setString(3,umlivro.getEditora());
        st.setInt(4,Integer.parseInt(umlivro.getAnoEdicao()));
        st.setString(5,umlivro.getLocalizacao());
        st.executeUpdate();
        desconecta();
        }
        catch(Exception e){
            setErro(e.getMessage());
        }
    }

public static void consultaUmLivro(Livro umlivro)
    {
    try {
        conecta("UmAlias","","");
        ResultSet rs;
        Statement st = con.createStatement();
        rs = st.executeQuery("SELECT * FROM TabEmpresas WHERE titulo=" + umlivro.getTitulo());
        while (rs.next())
        {

      tf2.setText(umlivro.getAutor());
     tf3.setText(umlivro.getEditora());
      tf4.setText(umlivro.getAnoEdicao());
      tf5.setText(umlivro.getLocalizacao());
        }
        desconecta();
        }
        catch(Exception e){
            setErro(e.getMessage());
        }
    }


public static void setErro(boolean _erro)
    {
    erro=_erro;
    }

public static void setErro(String _mens)
    {
    erro=true;
    mens=_mens;
    }

public static boolean getErro() {return erro;}
public static String getMens() {return mens;}
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

i aew EMSO.EXE,

bom olhando assim por cima, sem você colocar o stracktrace fica dificil dizer com propriedade onde está o erro, mas tente colocar sua a clausula where

entre aspas simples, ficando assim:

rs = st.executeQuery("SELECT * FROM TabEmpresas WHERE titulo='" + umlivro.getTitulo()+"'");

espero que ajude, abraço!

Editado por Romerito
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal solucionei o problema... segue o código...

valeu! Romerito

public static void consultaUmLivro(Livro umlivro)
    {
    try {
        conecta("UmAlias","","");
        ResultSet rs;
        Statement st = con.createStatement();
        rs = st.executeQuery("SELECT * FROM TabLivros WHERE titulo='"+ umlivro.getTitulo() +"'");
        while (rs.next())
        {
              umlivro.setAutor(rs.getString("autor"));
              umlivro.setEditora(rs.getString("editora"));
              umlivro.setAnoEdicao(rs.getString("anoedicao"));
              umlivro.setLocalizacao(rs.getString("localizacao"));
        }
        desconecta();
        }
        catch(Exception e){
            setErro(e.getMessage());
        }
    }

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...