Utilizar JdbcTemplate
/*
mas detalle
http://wetfeetblog.businesswebsitemanual.com/spring-jdbc-template-leaner-alternative-fat-hibernate/328
*/
private jdbcTemplate; // se inyecta desde Spring
private txTemplate; // idem
// obtener un solo registro --------------------------------------------------------
public InscripcionCursoData getCurso(int CODIGO) {
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("CODIGO", CODIGO);
return jdbcTemplate.queryForObject(sqlGetCurso, params, new MapperCursos());
}
// mapeador getCurso()
private static final class MapperCursos implements RowMapper<InscripcionCursoData> {
public InscripcionCursoData mapRow(ResultSet sqlRs, int rowNum) throws SQLException {
InscripcionCursoData m = new InscripcionCursoData();
m.CODIGO = sqlRs.getInt("CODIGO");
m.CODCURSO = sqlRs.getInt("CODCURSO"); // getInt retorna int
if(sqlRs.wasNull()) m.CODCURSO = null; // si fue null le asigno null
return m;
}
}
// obtener una lista de registros -----------------------------------------------------
public List<ComboData> listProfesoresFiltered(int CODMATERIA, int CODINSTRUMENTO) {
MapSqlParameterSource paramSource = new MapSqlParameterSource();
paramSource.addValue("CODMATERIA", CODMATERIA, Types.INTEGER);
paramSource.addValue("CODINSTRUMENTO", CODINSTRUMENTO, Types.INTEGER);
return jdbcTemplate.query(sqlListProfesoresFiltered, paramSource, new MapperCombo());
}
// el Mapper se utiliza similar... puede servir para obtener 1 o varios registros.
/*
mas detalle: http://simplespringtutorial.com/springProgrammaticTransactions.html
*/
// actualizar dentro de una transaccion
public int updateExamen(final InscripcionExamenData m) {
m.CODIGO = getId();
return txTemplate.execute(new TransactionCallback<Integer>() {
public Integer doInTransaction(TransactionStatus paramTransactionStatus) {
MapSqlParameterSource paramSource = new MapSqlParameterSource();
paramSource.addValue("CODIGO", m.CODIGO, Types.INTEGER);
paramSource.addValue("CODPERIODO", m.CODPERIODO);
paramSource.addValue("CODALUMNO", m.CODALUMNO);
try {
int resultado = jdbcTemplate.update(sqlInsertInscripcion,paramSource);
} catch (DataAccessException e) {
log.error("ERROR Inscripciones.updateExamen()", e);
}
return null; // aca se puede retornar el valor de resultado
}
}); // return
} // create