Busca um ID dentro do BD

4 respostas
V

Boa Tarde Galera,

Estou com 2 problemas e não consigo resolver, são eles:]

1° Buscar uma ID ja existente no meu banco.
2° Quando eu preciono o Gravar o meu painel tem que estar com todos os Jtextfields preenchidos senão da erro.

Eu já tentei diversos códigos e não consegui resolver.

As minhas classes são essas e acho que só elas serão necessárias para me ajudar.

DAO - Faz a conexão com o Dbconection

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;


public abstract class DAO {

	public int executeSQL(String sql) {
		int r = 0;
		Connection con = null;
		Statement st = null;
	
		try {
			con = DBConnection.getConnection();
			st = con.createStatement();
	
			r = st.executeUpdate(sql);
			
			
		} catch (SQLException e) {
			System.out.println("erro "+e);
		} finally {
			DBConnection.closeStatement(st);
			DBConnection.closeConnection(con);
			
		}
	
		return r;
	}

	
	protected Collection executeQuery(String sql) {
		ResultSet rs = null;
		Connection con = null;
		Statement st = null;
		ArrayList al = new ArrayList();
	
		try {
			con = DBConnection.getConnection();
			st = con.createStatement();
	
			rs = st.executeQuery(sql);
			
			while (rs.next()) {
				al.add(createObject(rs));
			}
		} catch (SQLException e) {
			System.out.println("erro "+e);
		  } finally {
			DBConnection.closeResultSet(rs);
			DBConnection.closeStatement(st);
			DBConnection.closeConnection(con);
		    }
		return al;
	}
		
	protected abstract Object createObject(ResultSet rs) throws SQLException;

}

CdDao aonde trato os comandos em Mysql

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;

public class CdDAO extends DAO {

    static Object getInstance() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

	public int inserirCd(Cd obj) {
		return executeSQL("INSERT INTO CD (CODCD,TITULO,AUTOR,GENERO,ANO,QTDFAIXAS,TEMPOTOTAL) "
				+ "VALUES('" + obj.getCodCd() + "','" + obj.getTitulo() + "','"
				+ obj.getAutor() + "','" + obj.getGenero() + "'," + obj.getAno() + "," 
				+ obj.getQtdFaixas() + "," + obj.getTempoTotal() + ") ");
	}

   
  
	public Collection selecionarTodos() {

		return executeQuery("SELECT * FROM CD ORDER BY CODCD");

	}

	public int excluirCd(Cd obj) {
		return executeSQL("DELETE FROM CD WHERE CODCD='" + obj.getCodCd()
				+ "'");
	}

	public int alterarCd(Cd obj) {
		return executeSQL("UPDATE CD SET TITULO='" + obj.getTitulo() + "',"
				+ "AUTOR='" + obj.getAutor() + "',GENERO='" + obj.getGenero() + "'," 
				+ "ANO= " + obj.getAno() + ","
				+ "QTDFAIXAS= " + obj.getQtdFaixas() + ","
				+ "TEMPOTOTAL= " + obj.getTempoTotal() + " WHERE CODCD='" + obj.getCodCd() + "' ");

	}
        
        public int buscaCod (Cd obj){
                               return executeSQL("SELECT CODCD FROM CD WHERE CODCD LIKE'" + obj.getCodCd() + "' ");

                   
            
        }

        
	@Override
	protected Object createObject(ResultSet rs) throws SQLException {
		Cd obj = new Cd();

		obj.setCodCd(rs.getString("CODCD"));
		obj.setTitulo(rs.getString("TITULO"));
		obj.setAutor(rs.getString("AUTOR"));
		obj.setGenero(rs.getString("GENERO"));
		obj.setAno(rs.getString("ANO"));
		obj.setQtdFaixas(rs.getString("QTDFAIXAS"));
		obj.setTempoTotal(rs.getString("TEMPOTOTAL"));
		return obj;
	}

}

Botão de Jtextfiel - codcd

Já está com erro

private void codcdActionPerformed(java.awt.event.ActionEvent evt) {                                      
   
 PreparedStatement query;   
 query = exe ().prepareStatement("Select COD from cd where id = " + Cd.getCodCd());   
 ResultSet rs = query.executeQuery();  
   
 if (rs.next())  
          System.out.println("Id existe");  
 else  
          System.out.println("Id não existe"); 
    
    
}

Botão Gravar

private void gravarActionPerformed(java.awt.event.ActionEvent evt) {                                       
// TODO add your handling code here:
    
     
      
      String codCd = codcd.getText();
      String Titulo = titulo.getText();
      String Autor = autor.getText();
      String Genero = genero.getText();
      String Ano = ano.getText();
      String Faixas = faixas.getText();
      String TempoTotal = tempo.getText();
            
//      Cd obj = new Cd (codCd,Titulo,Autor,Genero,Ano,Faixas,TempoTotal);
      Cd obj = new Cd (codCd,Titulo,Autor,Genero,Ano,Faixas,TempoTotal);
            
            CdDAO dao=new CdDAO();
            int r= dao.inserirCd(obj);
            
            if(r==0){
            	
            	JOptionPane.showMessageDialog(null, "Cadastre o Cd com um novo codigo",
						"Mensagem de Erro",JOptionPane.ERROR_MESSAGE,null);
            
        }else{
        	
        	JOptionPane.showMessageDialog(null, "Dados gravados com sucesso !!!",
            		"Mensagem",JOptionPane.WARNING_MESSAGE,null);
        		}
}

Se algume souber como me ajudar fico grato.

[]s

Vinicius

4 Respostas

Mephy

"SELECT * FROM cd WHERE id = " + idDesejado

e para não ser obrigatório preencher tudo, coloque a cláusula NOT NULL nos campos desejados, durante a criação da tabela

Carlos_Figueiredo

Você tem certeza que está procurando a coluna correta?
Pq em todas as consultas, vc consultou por CodCD, e não por ID...

Se sim... no mínimo vc tem q fazer algo parecido com...

public int getId (Cd obj){
		return executeSQL("SELECT ID FROM CD WHERE CODCD LIKE'" + obj.getCodCd() + "' ");
       
    }
vini_rj2000:
Boa Tarde Galera,

...

//...

	public Collection selecionarTodos() {

		return executeQuery("SELECT * FROM CD ORDER BY CODCD");

	}

	public int excluirCd(Cd obj) {
		return executeSQL("DELETE FROM CD WHERE CODCD='" + obj.getCodCd()
				+ "'");
	}

	public int alterarCd(Cd obj) {
		return executeSQL("UPDATE CD SET TITULO='" + obj.getTitulo() + "',"
				+ "AUTOR='" + obj.getAutor() + "',GENERO='" + obj.getGenero() + "'," 
				+ "ANO= " + obj.getAno() + ","
				+ "QTDFAIXAS= " + obj.getQtdFaixas() + ","
				+ "TEMPOTOTAL= " + obj.getTempoTotal() + " WHERE CODCD='" + obj.getCodCd() + "' ");

	}
        
        public int buscaCod (Cd obj){
                               return executeSQL("SELECT CODCD FROM CD WHERE CODCD LIKE'" + obj.getCodCd() + "' ");

                   
            
        }

        //...

Botão de Jtextfiel - codcd

Já está com erro

private void codcdActionPerformed(java.awt.event.ActionEvent evt) {                                      
   
 PreparedStatement query;   
 query = exe ().prepareStatement("Select COD from cd where id = " + Cd.getCodCd());   
 ResultSet rs = query.executeQuery();  
   
 if (rs.next())  
          System.out.println("Id existe");  
 else  
          System.out.println("Id não existe"); 
    
    
}

Botão Gravar

V

Galera muito obrigado pelas as informações mais eu continuo travado.

Aonde que eu coloco o Not Null??

Carlos,

Realmente a minha verificação está errada, se vc ver na classe codcd.

Vc pode verificar que eu criei um método no CDDAO aonde eu criei o buscacod que é aonde fica a consulta em mysql.

O que eu gostaria de saber é como verificar se o código existe ou não, se existir carregar os outros campos.

Se souber como me ajudar eu fico muito grato.

Carlos_Figueiredo

vini_rj2000:
Galera muito obrigado pelas as informações mais eu continuo travado.

Aonde que eu coloco o Not Null??

Isso é na criação da tabela no MySQL

Ex.:

CREATE TABLE `CD` (
  `CODCD` int(4) NOT NULL AUTO_INCREMENT,
  `TITULO` varchar(20) NOT NULL,
  `AUTOR` varchar(50) NOT NULL,
  PRIMARY KEY (`CODCD`)
)

vini_rj2000:

Carlos,

Realmente a minha verificação está errada, se vc ver na classe codcd.

Vc pode verificar que eu criei um método no CDDAO aonde eu criei o buscacod que é aonde fica a consulta em mysql.

O que eu gostaria de saber é como verificar se o código existe ou não, se existir carregar os outros campos.

Se souber como me ajudar eu fico muito grato.

O que está errado é no Query do seu método codcdActionPerformed(…)

private void codcdActionPerformed(java.awt.event.ActionEvent evt) {                                        
     
PreparedStatement query;     
query = exe ().prepareStatement("Select COD from cd where id = " + Cd.getCodCd());     
ResultSet rs = query.executeQuery();

Vc ta fazendo uma busca "Select Cod From cd where ID = "+ Cd.getCodCd());
Nao sei se na sua tabela tem uma coluna ID… e se tiver… o conteudo dela é igual ao q vc ta parametro CODCD q vc ta passando?

A outra coisa… vc disse q se o resultado nao for null… vc quer o conteudo das outras colunas…
Para isso, vc tem q fazer a busca com todas as colunas que vc quer… e nao buscar somente pela coluna COD

Criado 1 de maio de 2011
Ultima resposta 4 de mai. de 2011
Respostas 4
Participantes 3