Salve salve pessoal!
Tenho uma classe que pega as informações vinda de um formulário e as insere em um bd PostgreSql, ela está funcionando corretamente.
Agora na mesma classe preciso pegar parte dessas informações e inserir em um outro servidor (bd), mas não estou conseguindo fazer a conexão com este segundo bd.
Estou usando Spring MVC, e pra fazer a conexão estou usando Connection Factory.
Como faço pra abrir a segunda conexão no construtor?
Seguem meus códigos:
ConnectionFactory.java
[code]
public class ConnectionFactory2 {
public Connection getConnection2() throws SQLException {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
throw new SQLException(e);
}
System.out.println("abriu a conexão com banco");
return DriverManager.getConnection("jdbc:postgresql://localhost:5432/press2" ,"teste", "teste");//PostgreSql
}
}[/code]
Método da Classe DAO
public class PlanoAcaoDAO extends PlanoAcao {
private final Connection connection;
public PlanoAcaoDAO() {
try {
this.connection = new ConnectionFactory2().getConnection2();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void InsereAcao(PlanoAcao planoAcao, HttpSession session){
int idPlano = 0;
Util util = new Util();
String sqlInsere = "insert into plano_acao(planta,data,rua,objeto,usuario,e_mail_usuario,problema,causa,acao,prazo,indicador,estatus,observacoes) " +
"values (?,?,?,?,?,?,?,?,?,?,?,?,?) returning id_plano_acao";
try {
PreparedStatement stmt = this.connection.prepareStatement(sqlInsere);
stmt.setString(1, planoAcao.getPlanta());
java.sql.Date dataParaGravar = new java.sql.Date(planoAcao.getDataAbertura().getTimeInMillis());
stmt.setDate(2, dataParaGravar);
stmt.setString(3, planoAcao.getRua());
stmt.setString(4, util.removeAcentos(planoAcao.getObjeto()));
stmt.setString(5, planoAcao.getUsuario());
stmt.setString(6, planoAcao.getEmailUsuario());
stmt.setString(7, util.removeAcentos(planoAcao.getProblema()));
stmt.setString(8, util.removeAcentos(planoAcao.getCausa()));
stmt.setString(9, util.removeAcentos(planoAcao.getAcao()));
stmt.setInt(10, planoAcao.getPrazo());
stmt.setString(11, planoAcao.getIndicador());
stmt.setInt(12, planoAcao.getEstatus());
stmt.setString(13, planoAcao.getObservacoes());
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
idPlano = rs.getInt("id_plano_acao");
}
rs.close();
stmt.close();
//Pega o ID de retorno do plano de ação e insere os responsáveis
String resp[] = planoAcao.getResponsavel().split(",");
for (int i = 0; i < resp.length; i++) {
String insereResponsaveis = "insert into plano_acao_responsaveis (id_plano_acao, id_responsavel) values("+idPlano+","+resp[i]+")";
PreparedStatement stmt2 = this.connection.prepareStatement(insereResponsaveis);
stmt2.execute();
stmt2.close();
}
//Aqui vou colocar a função que vai gravar as informações no 2º BD
//#GRAVA AS INFORMAÇÕES NO SEGUNDO BD!!!!!
} catch (SQLException e) {
throw new RuntimeException("ERRO:"+e);
}
}
Abraços!