Receber data do MySQL

Seguinte galera to com um probleminha aqui quando faço o resultSet no banco a data da o erro abaixo ja tentei de várias maneiras receber o que vem da data e não ta dando certo.

Exception in thread "main" java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910) at com.mysql.jdbc.ResultSet.getDateFromString(ResultSet.java:2048) at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:5732) at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5544) at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5584) at br.com.struts.dao.CRUDar.listar(CRUDar.java:67) at br.com.struts.actions.ar.Teste.main(Teste.java:17)

[code] public List listar() throws SQLException{
String sql = “Select * From controlear_ar”;
PreparedStatement ps = getConexao().prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
List ars = new ArrayList();
while(rs.next()){

		AR ar = new AR();			
		ar.setCodigo(rs.getInt("ar_co_ar"));
		ar.setData(rs.getDate("ar_dt_entrega"));
		ar.setEnviadas(rs.getInt("ar_qt_entrega"));
		ar.setRecebidas(rs.getInt("ar_qt_recebimento"));
		ar.setCliente(rs.getInt("fk_cli_co_cliente"));
		ars.add(ar);
	}
	rs.close();
	ps.close();			
	return ars;
}[/code]

Dá uma olhada na documentação do mysql, tem função para formatar a data. Outra coisa, tenta executar a consulta
no console do mysql e vê se o campo de data não contém dados nulos.

Espero ter ajudado.

date_format(CAMPO_DATA, '%d/%m/%Y') as CAMPO_DATA

[]'s

A tabela como o campo data tem a data com zeros mas nulo não tem não.

Pois é… o MySQL está aceitando datas zeradas no seu banco.

Ou seja, para datas inválidas, está sendo usado ‘0000-00-00’. O que está ocorrendo: quando a API JDBC do MySQL tenta recuperar esse valor e instanciar uma java.sql.Date, ocorre o erro pois zeros não representam uma data válida. O que está havendo não é um erro técnico.

Solução:

// use isso na sua instrução para pegar a data:
SELECT IF(NomeDoCampoData = '0000-00-00', NULL, NomeDoCampoData) AS NomeDoCampoData FROM tbl;

E no código você vai precisar verificar se é nulo:

java.sql.Date date = null;

if (rs.getObject("NomeDoCampoData") != null)
  { date = rs.getDate("NomeDoCampoData"); }