Podríamos considerar a MyBatis, como la versión ligera de Hibernate. El cual se mantiene presente y adaptándose a los cambios de Java, en sus últimas versiones.
La versión estable corresponde a 3.5.9.
dependencies {
implementation 'org.mybatis:mybatis:3.5.9'
implementation 'com.oracle.database.jdbc:ojdbc8:19.6.0.0'
}
Estos son dos ejemplos que bien deberíamos usarlos, al utilizar MyBatis en nuestros proyectos.
1) Ya no necesitamos cerrar la sesión de forma explícita. Con
Try-With-Resources (Java7) dejamos esa acción a la JVM.
Y al emplear Local-Variable (Java10), hacemos más legible el código.
try (var sqlSession = sqlSessionFactory.openSession()) { //.1
MapperRecaudacion mapper = sqlSession.getMapper(MapperRecaudacion.class);
mapper.getTipoCambio3(mapParametros);
vTipoCambio = (BigDecimal)mapParametros.get("nValorTipoCambio");
} catch (Exception e) {
log.error("", e);
}
2) Para construir la sentencia SQL (el ejemplo corresponde a un SP de Oracle), nos valemos de Text Block (Java15).
@Select(value = """
{call #{nValorTipoCambio, mode=OUT, jdbcType=NUMERIC} :=
FARMA_UTILITY.OBTIENE_TIPO_CAMBIO3(
#{cCodGrupoCia_in},#{cCodCia_in},#{cFecCambio_in},#{cTipo})}""") //.2
@Options(statementType = StatementType.CALLABLE)
void getTipoCambio3(Map<String, Object> mapParametros);
3) Adicionalmente, podemos reemplazar el operador ternario con Optional (Java8).
//return vTipoCambio == null?0.0:vTipoCambio.doubleValue();
return Optional.ofNullable(vTipoCambio)
.map(BigDecimal::doubleValue)
.orElse(0.0); //.3
Documentación
Try-With-Resources
JEP 286: Local-Variable Type Inference
JEP 378: Text Blocks
Optional
Top comments (0)