Consultar no banco de dados

11 respostas
P

Olá pessoal estou com uma problema:
eu faço as linhas de comando, mas ele não está consultando no banco de dados
fiz um arquivo chamado sqlProfessores, que tem as seguintes linhas para consultar no banco de dados:

public static String consultarProfessores(int codigo){ conecta(); try{ stm = con.createStatement(); String SQL = "SELECT * FROM Professores WHERE Codigo ="+codigo; rs=stm.executeQuery(SQL); if (rs.next()){ setNome(String.valueOf(rs.getObject("Nome"))); setData_Nasc(String.valueOf(rs.getObject("Data_Nasc"))); setEndereco(String.valueOf(rs.getObject("Endereco"))); setCPF(String.valueOf(rs.getObject("CPF"))); } } catch(Exception e){ System.out.println(e); } desconecta(); return null; }

e quando eu faço o evento no TextField do codigo as linhas são as seguintes:

sqlProfessores.consultarProfessores(Integer.parseInt(tfCodigo.getText()));

tfNome.setText(sqlProfessores.getNome());

ftfDataNasc.setText(sqlProfessores.getData_Nasc());

tfEndereco.setText(sqlProfessores.getEndereco());

jCPF1.setText(sqlProfessores.getCPF());

ele dá o seguinte problema:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Coluna ‘Codigo’ desconhecida em ‘where clause’
java.lang.NullPointerException

Por favor alguém pode me ajudar?
Obrigado
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

11 Respostas

K

Codigo é realmente o nome da sua coluna? O erro diz que essa coluna nao existe

P
Agora eu fui ver e na minha coluna ele está assim: Cod_Prof

troquei e ficou assim:

String SQL = SELECT * FROM Professores WHERE Cod_Prof =+codigo;

(é esta linha ?)

mas não funcionou a mesma coisa
K

Entao mostre qual erro deu agora… :slight_smile:

P

java.lang.NullPointerException

E ele  mais alguns erros que não tem nada a ver como por exemplo:

at ConDes.desconecta(ConDes.java:41)

at sqlProfessores.consultarProfessores(sqlProfessores.java:99)

at Professores.tfCodigoFocusLost(Professores.java:151)
K

Se vc fizer essa consulta diretamente no seu MySQL, usando o mesmo codigo do professor, a busca retorna algum resultado?

P

Ele dá essa mensagem de erro:

“SELECT * FROM Professores WHERE Cod_Prof=” + codigo;

Mensagens do MySQL : Documentação
#1064 - Você tem um erro de sintaxe no seu SQL próximo a ‘“SELECT * FROM Professores WHERE Cod_Prof=”+codigo’ na linha 1

K

Seguinte, no MySQL, a variavel codigo nao existe. Faça assim:
SELECT * FROM Professores WHERE Cod_Prof = codigo

apenas troque a variavel codigo, pelo valor que codigo recebia no seu programa em Java. Nao se preocupe em por um codigo q exista em seu banco agora, coloque o codigo que vc usava no seu programa. Talvez o erro seja este.

P

Não funcionou, mas eu vou colocar todo o código que serve para conectar e desconectar do banco de dados, ele dá erro na linha do desconecta:

import java.sql.*;

/*

  • ConDes.java
  • Created on 5 de Junho de 2006, 09:20
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

/**
*

  • @author maq02
    */
    public class ConDes {

    /** Creates a new instance of ConDes */
    
    public ConDes() {
    
    }
    
    public static PreparedStatement stmt;
    
    public static Statement stm;
    
    public static Connection con;
    
    public static ResultSet rs;
    
    public static String conecta(){
    
    try{
    
    Class.forName(org.gjt.mm.mysql.Driver);
    
    con = DriverManager.getConnection(jdbc:mysql://localhost:3306/Sistema162”, “analise”, “sistema”);
    
    System.out.println(Conectou com sucesso);
    
    }catch(Exception e){
    
    System.out.println(e);
    
    e.printStackTrace();
    
    }return null;
    
    }
    
    public static String desconecta(){
    
    try{
    
    con.close();
    
    stmt.close();//é nesta linha que dá erro
    
    } catch (Exception e){
    
    e.printStackTrace();
    
    }
    
    return null;
    
    }
    
    }
    
K

Tente fazer isso sem chamar o método desconecta. Ele nao é estritamente necessário.

P

Beleza…mas ele não dá erro,
ele me informa a mensagem que conectou com sucesso… mas ele não consulta…

M

“pauletsss”:
Não funcionou, mas eu vou colocar todo o código que serve para conectar e desconectar do banco de dados, ele dá erro na linha do desconecta:

import java.sql.*;

/*

  • ConDes.java
  • Created on 5 de Junho de 2006, 09:20
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

/**
*

  • @author maq02
    */
    public class ConDes {

    /** Creates a new instance of ConDes */
    
    public ConDes() {
    
    }
    
    public static PreparedStatement stmt;
    
    public static Statement stm;
    
    public static Connection con;
    
    public static ResultSet rs;
    
    public static String conecta(){
    
    try{
    
    Class.forName(org.gjt.mm.mysql.Driver);
    
    con = DriverManager.getConnection(jdbc:mysql://localhost:3306/Sistema162”, “analise”, “sistema”);
    
    System.out.println(Conectou com sucesso);
    
    }catch(Exception e){
    
    System.out.println(e);
    
    e.printStackTrace();
    
    }return null;
    
    }
    
    public static String desconecta(){
    
    try{
    
    con.close();
    
    stmt.close();//é nesta linha que dá erro
    
    } catch (Exception e){
    
    e.printStackTrace();
    
    }
    
    return null;
    
    }
    
    }</blockquote>
    

Você não precisa fechar o Statment no método desconecta. Apenas feche a conexão com o banco. Tente comentar a linha…

Criado 19 de junho de 2006
Ultima resposta 19 de jun. de 2006
Respostas 11
Participantes 3