Sei que já tem tópicos sobre isso, mas parece que li metade da internet e ainda não consegui resolver.
Eu já aumentei o espaço de memória em “opções adicionais do compilador” do projeto e ainda assim não funciona. Acho que é mesmo meu código que tá ruim… Podem me ajudar?
public List<Contato> getLista(){
sql = "SELECT * FROM contato";
try{
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
}catch(SQLException e){
System.err.println("\n\nERRO AO RETORNAR DADOS\n\n");
}
List<Contato> lista = new ArrayList<Contato>();
int qtColunas = contaColunas(rs);
if(qtColunas <= 0){
System.err.println("Não há colunas");
}else{
try {
while(rs.next()){
int i = 1;
while(i < qtColunas){
Contato contato = new Contato();
int id = rs.getInt("id_contato");
String nome = rs.getString("nome");
String endereco = rs.getString("endereco");
String email = rs.getString("email");
String dataNascimento = rs.getString("dataNascimento");
contato.setId(id);
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
contato.setDataNascimento(dataNascimento);
lista.add(contato);
}
}
}
catch (SQLException ex) {
ex.printStackTrace();
}catch(OutOfMemoryError o){
System.err.println("Sem memória");
o.printStackTrace();
}
}
return lista;
}
public int contaColunas(ResultSet rs){
ResultSetMetaData rsmd = null;
int colunas = 0;
try {
rsmd = rs.getMetaData();
} catch (SQLException ex) {
System.err.println("Erro ao recuperar metadata");
}
try {
colunas = rsmd.getColumnCount();
} catch (SQLException ex) {
System.err.println("Erro ao recuperar número de colunas do rs");
}
return colunas;
}
}
Stacktrace:
run: Sem memória Exception in thread “main” java.lang.OutOfMemoryError: Java heap space at java.util.IdentityHashMap.init(IdentityHashMap.java:254) at java.util.IdentityHashMap.(IdentityHashMap.java:210) at java.lang.Throwable.printStackTrace(Throwable.java:649) at java.lang.Throwable.printStackTrace(Throwable.java:643) at java.lang.Throwable.printStackTrace(Throwable.java:634) at br.com.model.dao.ContatoDAO.getLista(ContatoDAO.java:92) at br.com.connection.Teste.main(Teste.java:17)
