Duvida em laço de repetição [RESOLVIDO]

14 respostas
P

Boa tarde,

preciso criar um método que pegue todos os emails dos clientes que estão com parcelas vencidas e envie um email de cobrança.

na tela principal do meu sistema criei uma tabela para mostrar as parcelas em atraso então pensei em criar um botão que envie um email para todos eles.

criei um laço de repetição para buscar o email e enviar mas ele só pega o primeiro email.

Alguma idéia de como faço isso?

14 Respostas

E

Sim, mais poste o código pra ver como está fazendo.

P
String email1 = null;
    String email = null;
     int enviado = 0;
    while(email1 == email){
        
        email1 = Controle.ControleCliente.getInstancecliente().buscarEmail();
    
    
   
    int msg = enviado+1;
    
     JOptionPane.showMessageDialog(null, email1);
    JOptionPane.showMessageDialog(null,"Foram enviados "+ msg+" emails");
    }
   
}
E

tá bem estranho esse código seu porque o while email1 == email???

Quando ele roda pela segunda vez ele vai comparar por exemplo email: [email removido] == email que é null não é então sai do laço por isso ele só vai uma vez o certo é você fazer uma lista como você busca todos os emails coloca em um ArrayList de String dai só fazer um for para enviar as mensagens mais ou menos assim:

List<String> listaEmails = new ArrayList<String>();
		listaEmails = Controle.ControleCliente.getInstancecliente().buscarEmail();
		for (String string : listaEmails) {
			JOptionPane.showMessageDialog(null, string);
		}
		
	    JOptionPane.showMessageDialog(null,"Foram enviados "+ listaEmails.size() +" emails");

Faça seu método: listaEmails = Controle.ControleCliente.getInstancecliente().buscarEmail(); retornar um List.

P

Obrigado! vou tentar fazer isto!

P

Não estou conseguindo transformar listaEmails em um list, sempre diz que não é possível transformar String em List. pode me ajudar ou indicar algum tutorial?

E

No seu método de buscarEmail() { ??? se sim você tem que fazer quase a mesma coisa para depois conseguir ler essa lista por exemplo seu buscarEmail vai ficar tipo:

public List<String> buscarEmail () {

List<String> listaEmail = new ArrayList<String>();

//seu método aqui para buscar os emails

for (Cliente cliente : listaCliente) {

String email = cliente.getEmail();

listaEmail.Add(email);
}
}
P

Não estou conseguindo entender como armazenar o resultado da pesquisa tipo:

List listaEmail = new ArrayList();

//seu método aqui para buscar os emails

ControleCliente.getInstancecliente().buscarEmail(); // quem recebe esta informação?

for (Cliente cliente : listaCliente) {

E

É pra você modificar seu atual método ControleCliente.getInstancecliente().buscarEmail(

Isso que falei você faz isso nele. Se Possível poste seu método buscarEmail.

P

método de busca do email:

public String buscarEmail() {

        ResultSet rs = null;
        String email = null;

        try {

            ConectaBanco cb = new Controle.ConectaBanco();
            con = cb.conectaPostgreSql("Test Banco Carlos");
            Statement state = con.createStatement();

            rs = state.executeQuery(buscaemail);

            while (rs.next()) {

                email = rs.getString("email1");
            }

            //state.close();
        } catch (SQLException e) {
            System.err.println(e);
        }
        return email;
    }
E

public List<String> buscarEmail() {

ResultSet rs = null;
    
    List<String> listaEmail = new ArrayList<String>();
    String email = null;

    try {

        ConectaBanco cb = new Controle.ConectaBanco();
        con = cb.conectaPostgreSql("Test Banco Carlos");
        Statement state = con.createStatement();

        rs = state.executeQuery(buscaemail);

        while (rs.next()) {

            email = rs.getString("email1");
            listaEmail.add(email);
        }

        //state.close();
    } catch (SQLException e) {
        System.err.println(e);
    }
    return listaEmail;
}
P

Obrigado pela Ajuda e por ter tanta paciência!!!

E

Mas resolveu?

P

Com certeza, já esta rodando no cliente!!

E

Show de bola então amigo.

Criado 18 de maio de 2016
Ultima resposta 20 de mai. de 2016
Respostas 14
Participantes 2