Verificar se o campo é valido Banco de dados

2 respostas
S

Ola amigos, preciso de uma ajuda.

Estou usando o SQLyog.

Tenho um pequeno banco de dados
titulo varchar 30
nome varchar 50
votou varchar 1

Exemplo de como esta cadastrado
titulo------------------------nome----------------------votou
1----------------------------Marcos-----------------------S
2---------------------------Fernanda---------------------N

Ao clicar no botão ,eu preciso verificar se o título ja existe no banco de dados. Se não existir verificar se no campo votou esta “N” ou “S”. Se estiver N , abrir uma nova Janela, se estiver S, apresentar a mensagem “Ja votou”.

Nesse exercicio só posso ter um campo de texto(txtTitulo) e um botão, usar pacote VIEW para o form, DAO para conexão e métodos e o pacote CLASSES para get e set

[color=red]para verificar se o titulo ja existe no banco de dados fiz o seguinte [/color]

package urnaDao;

import classes.Eleicoes;
import classes.Urna;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class UrnaDao {


 /*Pesquisa pelo titulo*/
    public Urna getUrna(String titulo) {

        Urna objUrna = new Urna();

        try {
            Connection con = UrnaDao.getConexao();
            Statement stmt = con.createStatement();
            String sql = "SELECT * FROM tabcadastrareleitor Where titulo = '" + titulo + "'";
            ResultSet rs = stmt.executeQuery(sql);

            //Se titulo existe...
            if (rs.next()) {
                objUrna.setNome(rs.getString("nome"));
                objUrna.setTitulo(rs.getString("titulo"));
                objUrna.setVotou(rs.getString("votou"));

            } else {
                objUrna = null;
            }

            rs.close();
            stmt.close();
            con.close();

        } catch (Exception e) {
            objUrna = null;
        }
        return objUrna;
    }

}
package view;

import classes.Urna;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import urnaDao.UrnaDao;


public class CadastrarVoto extends javax.swing.JFrame {

    public CadastrarVoto() {
        initComponents();
    }




  private void btnIniciarVotacaoActionPerformed(java.awt.event.ActionEvent evt) {                                                  

        try {

            if (txtTitulo.getText().isEmpty()) {
                JOptionPane.showMessageDialog(null, "Por favor preencher o campo título", "Iniciar votação", JOptionPane.ERROR_MESSAGE);

            } else {

              
                Urna existe = new UrnaDao().getUrna(txtTitulo.getText());
  
                           
                if (existe == null) {

                    JOptionPane.showMessageDialog(null, "Título de eleitor não cadastrado", "Iniciar votação", JOptionPane.INFORMATION_MESSAGE);

                } else {

                    JOptionPane.showMessageDialog(null, "Maravilha", "Iniciar votação", JOptionPane.QUESTION_MESSAGE);

                    java.awt.EventQueue.invokeLater(new Runnable() {
                        public void run() {
                            new UrnaEletronica().setVisible(true);
                        }
                    });

                }
            }
        } catch (Exception e) {

        }


    }

O que eu não sei é verificar se no campo votou esta “N” ou “S”, ja que não tem um campo de texto txtVotou.getText.
Tentei usar

public Urna getVotou(String votou) {

        Urna objVotou = new Urna();

        try {
            Connection con = UrnaDao.getConexao();
            Statement stmt = con.createStatement();
            String sql = "SELECT votou FROM tabcadastrareleitor Where votou = '" + votou + "'";
            ResultSet rs = stmt.executeQuery(sql);

            //Se votou existe...
            if (rs.next()) {

             
                objVotou.setVotou(rs.getString("votou"));

            } else {
                objVotou = null;
            }

            rs.close();
            stmt.close();
            con.close();

        } catch (Exception e) {
            objVotou = null;
        }
        return objVotou;
    }

e

private void btnIniciarVotacaoActionPerformed(java.awt.event.ActionEvent evt) {                                                  

        try {

            if (txtTitulo.getText().isEmpty()) {
                JOptionPane.showMessageDialog(null, "Por favor preencher o campo título", "Iniciar votação", JOptionPane.ERROR_MESSAGE);

            } else {

            
                Urna existe = new UrnaDao().getUrna(txtTitulo.getText());
                Urna votouOuNaoVotou = new UrnaDao().getVotou("N");

                
               
                
                //Se o valor encontrado
                // for nulo (não for encontrado no banco de dados)
                //então...
                if (existe == null) {

                    JOptionPane.showMessageDialog(null, "Título de eleitor não cadastrado", "Iniciar votação", JOptionPane.INFORMATION_MESSAGE);

                } else {

                    if (votouOuNaoVotou.equals("N")) {

                        JOptionPane.showMessageDialog(null, "Maravilha", "Iniciar votação", JOptionPane.QUESTION_MESSAGE);

                        java.awt.EventQueue.invokeLater(new Runnable() {
                            public void run() {
                                new UrnaEletronica().setVisible(true);
                            }
                        });

                    } else {

                        JOptionPane.showMessageDialog(null, "Eleitor já votou", "Iniciar votação", JOptionPane.INFORMATION_MESSAGE);

                    }

                }
            }
        } catch (Exception e) {

        }


    }

Mas não deu certo, não busca corretamente a informação do campo “votou”

2 Respostas

Ataxexe

Nâo duplique seus tópicos:

http://www.guj.com.br/java/308131-verificar-se-o-campo-e-valido-banco-de-dados-

S

Eu coloquei meu tópico no java básico, mas achei que estava no lugar errado, então coloquei aqui, tentei apagar mas não sei como apagar

Criado 14 de maio de 2014
Ultima resposta 15 de mai. de 2014
Respostas 2
Participantes 2