Alguém sabe de um plugin para construir templates do código eclipse. Basicamente eu queria algo mais sofisticado do que o “Code Style / Code templates” que já tem no eclipse.
Que tipo de template gostaria de fazer? Quem sabe exista algum plugin para o tipo específico que deseja.
quero gerar um esqueleto para toda classe DAO que eu criar. por exemplo, eu crio uma classe e o eclipse já cria o esqueleto como abaixo:
seria legal que ele deixasse eu informar uma variável, por exemplo ${nomeClasse} e %{pacote}.
package ${pacote};
public class ${nomeClasse}DAOOracle extends … implements
${nomeClasse}DAO {
protected Object obterObjeto(ResultSet rs) throws SQLException {
return null;
}
public ${nomeClasse} obter${nomeClasse}(Long id${nomeClasse}) throws ... {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
${nomeClasse} retorno = null;
String sql =
"SELECT"
+ ", " +
" "
+ "FROM"
+ " "
+ "WHERE"
+ " ";
try {
conn = this
.createNewConnection(...);
ps = conn.prepareStatement(sql);
// parametros ps
rs = ps.executeQuery();
} catch (SQLException sqle) {
LogManager.$aplicacaoLog_jdbc_sql.fatal(sqle);
obterDetalhamentoDeSQLException(sqle);
} finally {
closeStatement(ps);
closeConnection(conn);
closeResultSet(rs);
}
return retorno;
}
}
Até entendo, mas porque não coloca toda a lógica de criação e execução da query na classe pai?
Ao me deparar com código que escrevo muitas vezes, antes tento descobrir porque o escrevo tanto antes de arranjar uma ferramenta para escrever para mim.
De qualquer forma, criei um template do Eclipse que gera essa classe de exemplo que deu:
[code]package ${pacote};
public class ${nomeClasse}DAOOracle extends BaseDAO implements ${nomeClasse}DAO {
protected Object obterObjeto(ResultSet rs) throws SQLException {
return null;
}
public ${nomeClasse} obter${nomeClasse}(Long id${nomeClasse}) throws {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
${nomeClasse} retorno = null;
String sql =
“SELECT”
+ “, " +
” "
+ “FROM”
+ " "
+ “WHERE”
+ " ";
try {
conn = this.createNewConnection();
ps = conn.prepareStatement(sql);
// parametros ps
rs = ps.executeQuery();
} catch (SQLException sqle) {
LogManager.${aplicacaoLog_jdbc_sql}.fatal(sqle);
obterDetalhamentoDeSQLException(sqle);
} finally {
closeStatement(ps);
closeConnection(conn);
closeResultSet(rs);
}
return retorno;
}
} [/code]
Ao inserir o template basta ir apertando “tab” para navegar entre as variáveis opcionais. Como ocorre no Eclipse, ao alterar a primeira variável “nomeClasse”, todas as outras do template também serão.
É que eu não tenho permissão para alterar a estrutura das classes.
Valeu Lipe! seu template resolveu o problema.