Olá pessoal,
eu estava fazendo o seguinte construtor
na minha classe TecnicoDao:
public class TecnicoDao {
private Connection conn = null;
private Statement stmt = null;
//O.K.!!!
public TecnicoDao() throws LAFQADaoException {
try {
this.conn = ConnectionFactory.getConnection();
}
catch (Exception e) {
throw new LAFQADaoException("erro" + ":\n" + e.getMessage());
}
}
public void salvarTecnico(Tecnico tecnico) throws LAFQADaoException {
...
finally {
try {
ConnectionFactory.closeconnection(conn, ps);
}
catch (SQLException ex) {
Logger.getLogger(TecnicoDao.class.getName()).log(Level.SEVERE, null, ex);
}
}
...
}
Mas um amigo meu me falou que dessa maneira
eu poderia criar várias conexões então ele me indicou
fazer uma inversão de controle onde eu passaria a conexão
para o construtor.
Então fiz dessa maneira:
public class TecnicoDao{
private Connection conn;
//o.k.!!!
public TecnicoDao(Connection conn) throws LAFQADaoException {
try {
this.conn = conn;
}
catch (Exception e) {
throw new LAFQADaoException("erro" + ":\n" + e.getMessage());
}
}
...
}
e na hora de fazer o uso eu estou fazendo da seguinte forma:
Connection conn = ConnectionFactory.getConnection();
produtorDAO = new ProdutorDao(conn);
produtorDAO.salvarProdutor(produtor);
conn.close();
Queria pedir uma opinião com vc’s sobre o que eu estou fazendo
se a inversão de controle é mesmo dessa forma?
[]'s.