Olá
Preciso fazer uma conexão java com banco Access, porém a consulta é grande e está estourando memória heap. Encontrei no site do Ucanacces a sugestão de utilizar um banco espelho, para não salvar em memória, seria com o KeepMirror, porém não encontrei nenhum exemplo de onde acrescento este keepMirror. Alguém já utilizou ele?
esta é a sujestão do site, mas não encontro sintaxe para isto:
jdbc:ucanaccess://C:/db/main.mdb;keepMirror=C:/db/mirrorName
Caso alguém precise… segue minha classe de conexão, a diferença de uso de memória é muito grande utilizando este parâmetro KeepMirror, pois quando conecta, o sistema cria um banco espelho no local definido então a pesquisa fica bem mais rápida e no meu caso não estourou mais a memória heap.
public class Conexao {
static Connection con;
public static Connection getConnection() throws Exception {
String driver = "net.ucanaccess.jdbc.UcanaccessDriver";
String url = "jdbc:ucanaccess://\\\\D:\\BDTeste\\SUL.accdb;;keepMirror=D:\\BDTeste\\BDespelho";//aqui fica BD espelho mesmo ou qualquer outro nome, pois o sistema que vai criar este arquivo, não precisa ja estar criado
String username = ""; //leave blank if none
String password = ""; //leave blank if none
try {
Class.forName(driver);
con = DriverManager.getConnection(url, username, password);
con.setAutoCommit(false);
System.out.println("Conectado!");
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "Erro na conexão\n"+e, "ATENÇÃO", JOptionPane.ERROR_MESSAGE);
System.out.println(e);
}
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, "Erro na conexão\n"+e, "ATENÇÃO", JOptionPane.ERROR_MESSAGE);
System.out.println(e);
}
return con;
}