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”