Oi, Alexandre.
Você pode carregar as propriedades do banco em específicas num arquivo de propriedade e repassa-las pro EntityManagerFactory através do segundo parâmetro do método createEntityManagerFactory.
Uma implementação possível para o JPAUTIL seria essa:
private static EntityManagerFactory entityManagerFactory;
static {
try(InputStream jpaFileInput = new FileInputStream("C:\\teste.properties")) {
Properties properties = new Properties();
properties.load(jpaFileInput);
entityManagerFactory = Persistence.createEntityManagerFactory("financas", properties);
}
catch(Exception ex) {
//Tratamento de exceção
}
}
public EntityManager getEntityManager() {
return entityManagerFactory.createEntityManager();
}
Já seu arquivo properties (aqui, teste.properties) ficaria assim:
javax.persistence.jdbc.url = jdbc:mysql://localhost:3306/financas
javax.persistence.jdbc.user = root
javax.persistence.jdbc.password =
javax.persistence.jdbc.driver = com.mysql.jdbc.Driver
Mesmo com essa abordagem o arquivo persistence.xml ainda precisa existir dentro do projeto para ele funcionar, porém não necessário mais declarar as propriedades já presentes dentro do arquivo properties.
Assim você pode desacoplar as propriedades da sua conexão do projeto em um outro arquivo.
Qualquer coisa estamos à disposição.