Ae pessoal, Bom dia a todos. Gostaria que me ajudassem no seguinte problema. Eu estou tentando atualizar um banco em MsAccess com um banco PostgreSQL. E então, vejam o que acontece.
essa é minha classe main:
public class ComparacaoDB {
private static Connection conexaoPostgreSQL;
private static Connection conexaoMSAccess;
public static void main(String[] args) {
//try {
ConexaoMSAccess conexaoAccess = new ConexaoMSAccess();
ConexaoPostgreSQL conexaoPostgre = new ConexaoPostgreSQL();
try {
conexaoAccess.getConexao();
conexaoPostgre.AtualizarPorNome(conexaoAccess.ListarNome(), conexaoAccess.getConexao());
// conexaoAccess.ListarCPF();
System.exit(0);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(1);
}
// }catch(SQLException sqlex) {
// sqlex.printStackTrace();
// }
}
}
Não liguem pros " // " … pq são testes… ehehe
e ae, esse é meu método atualiza.
public void AtualizarPorNome(ArrayList<String> nomes, Connection BancoAccess) {
try {
conn = ConexaoPostgreSQL.getConexao();
PreparedStatement stmt = conn
.prepareStatement("SELECT * FROM sppweb.produtor order by cod_produtor");
// executa um select
ResultSet rs = stmt.executeQuery();
// recebe propriedades da tabela
ResultSetMetaData rsmd = rs.getMetaData();
// quantidade de colunas
int qntDeColuna = rsmd.getColumnCount();
// String tipoDeColuna;
while (rs.next()) {
if (rs.getString("nome_produtor").equals(nomes.get(11))){
// percorre tods os campos do filtro encontrado
// e adiciona todos os itens em um arrayList de objetos
for (int i = 1; i <= qntDeColuna; i++) {
ListaDosCampos.add(rs.getObject(i));
// verifica se o objeto é do tipo String
// se for, o imprime no console
if (ListaDosCampos.get(i - 1) instanceof String) {
String campo = (String) ListaDosCampos.get(i - 1);
System.out.println(campo);
}
// if (ListaDosCampos.get(i - 1) instanceof Long) {
// Long numero = (Long) ListaDosCampos.get(i - 1);
// System.out.println(numero);
// }
}
// nomeAtualizado = rs.getString("nome_produtor");
// BancoAccess.prepareStatement("UPDATE * FROM NOME_PROD WHERE NOME_PROD like'%'" + nomeAtualizado+ "'%' ");
}
}
System.out.println(ListaDosCampos.size());
rs.close();
stmt.close();
conn.close();
BancoAccess.close();
}catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
Esse é meu método listarNome
public ArrayList<String> ListarNome() {
String nomes;
try {
conn = this.getConexao();
PreparedStatement stmt = conn
.prepareStatement("SELECT NOME_PROD FROM FRENTE ORDER BY CHAVE ");
// executa um select
ResultSet rs = stmt.executeQuery();
// itera no ResultSet
while (rs.next()) {
// adiciona em caa posição do array o cpf
// de acordo com a posição da chave
ListaNome.add(rs.getString(1));
}
// for para retirar todos os acentos ortográficos
// para que possa ser comparado no DB
for (int i = 0; i < ListaNome.size(); i++) {
nomes = ListaNome.get(i);
// verifica se apelido é null , se for
// atribui um valor vazio
if (nomes == null) {
nomes = "";
}
// remove os acentos ortográficos de cada apelido
nomes = Normalizer.normalize(nomes, Normalizer.Form.NFD);
nomes = nomes.replaceAll("[^\p{ASCII}]", "");
ListaNome.set(i, nomes);
}
for (int i=0;i<ListaNome.size();i++){
System.out.println(ListaNome.get(i));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException sqlex) {
sqlex.printStackTrace();
}
return ListaNome;
}
…
e ae. qndo executo, aparece …
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
… alguém pode me ajudar. ?