Ajuda em metodo DAO getLista

6 respostas
FabioNoth

Bom dia a todos!! Estou com uma dúvida básica? Pelo menos acho que é para o pessoal que já está há algum tempo programando?
Primeiro vou passar o código para vocês e depois informo o erro:

Classe Modelo
package br.com.caelum.modelo;

import java.util.Calendar;

public class Contato {
	private Long id;
	private String nome;
	private String email;
	private String endereco;
	private Calendar dataNascimento;
	
	//metodos gets e sets
                // *^~~~~~~~~~
}~
Metodo Listar Contatos da Classe Dao
public List<Contato> getLista() {
		try{
			List<Contato> contatos = new ArrayList<Contato>();
			PreparedStatement stmt = this.connection.prepareStatement("select * from contatos");
			ResultSet rs = stmt.executeQuery();

			
			while (rs.next()){
				Contato contato = new Contato();
				contato.setNome(rs.getString("nome"));
				contato.setEmail(rs.getString("email"));
				contato.setEndereco(rs.getString("edereco"));
				
				// Trabalhando com a Data
				Calendar data = Calendar.getInstance();
				data.setTime(rs.getDate("dataNascimento"));
				contato.setDataNascimento(data);
				contatos.add(contato);
			}
			rs.close();
			stmt.close();
			return contatos;
		}	catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
E Classe MAIN de teste
package br.com.caelum.jdbc.teste;

import java.util.*;

import br.com.caelum.dao.ContatoDAO;
import br.com.caelum.modelo.Contato;

public class TestaLista {
	public static void main(String[] args) {
		ContatoDAO dao = new ContatoDAO();
		List<Contato> contatos = dao.getLista();
		
		for (Contato contato : contatos) {
			System.out.println("Nome: " + contato.getNome());
			System.out.println("Email: " + contato.getEmail());
			System.out.println("Endereco:" + contato.getEndereco());
			System.out.println("Data atual: "+ contato.getDataNascimento().getTime()+ "\n");
		}
	}
}
Resultado Final do Código: Nome: Fabio Email: [email removido] Endereco:Celestino Castelli, 177 Parque Presidente II Data atual: Fri Aug 13 00:00:00 BRT 2010

Dúvida: Gostaria que o resultado da data fosse?
dd/MM/yyy
estudei a classe SimpleFormatDate e não tive sucesso..

att. Fábio Noth / Obrigado a todos pela ajuda

6 Respostas

Carlos_ds_jar

Dúvida: Gostaria que o resultado da data fosse?
dd/MM/yyy
estudei a classe SimpleFormatDate e não tive sucess

Rapaz vc quer o ano no formato yyy, com tres digitos?

FabioNoth

não com 4 digitos…
erro digitação
dd/MM/yyyy

lordtiago

Cara se for com 04 dígitos dá pra fazer assim:

http://www.guj.com.br/posts/list/214173.java#1096490
Postei uma classe de data lá no post do link, que eu fiz.

emanuelCruz

Você estava certo, usa-se SimpleDateFormat para isso.

exemplo:

import java.text.SimpleDateFormat;
import java.util.Date;


public class Test {

	public static void main(String[] args) {
		//formatador da data
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		//data que desejo formatar
		Date data = new Date();
		//formatando a data para exibicao
		System.out.println(sdf.format(data));
	}
	
}
rod

FabioNoth

Umas das formas de resolver seu problema é usando a classe SimpleDateFormat.
Vou postar um exemplo e recomendo também que você de uma olhada na API dessa classe para entender melhor como ela funciona. :wink:

Calendar calendar = Calendar.getInstance(); SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); System.out.println(formatter.format(calendar.getTime()));

http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

FabioNoth

Obrigado amigos…
Resolvi desta Forma…
Estou muito grato a todos…

for (Contato contato : contatos) { System.out.println("Nome: " + contato.getNome()); System.out.println("Email: " + contato.getEmail()); System.out.println("Endereco:" + contato.getEndereco()); SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy"); System.out.println("Data do Nascimento: "+ formater.format(contato.getDataNascimento().getTime())+ "\n"); }

resultado: Nome: Fabio
Email: [email removido]
Endereco:Celestino Castelli, 177 Parque Presidente II
Data atual: 13/08/2010

Criado 14 de agosto de 2010
Ultima resposta 14 de ago. de 2010
Respostas 6
Participantes 5