Primavera: diferencia entre RowMapper y ResultSetExtractor

Spring es uno de los marcos Java EE más populares. Es un marco ligero de código abierto que permite a los desarrolladores de Java EE 7 crear aplicaciones empresariales sencillas, fiables y escalables. Este marco se centra principalmente en proporcionar varias formas de ayudarlo a administrar sus objetos comerciales. Hizo que el desarrollo de aplicaciones web fuera mucho más fácil en comparación con los marcos Java clásicos y las interfaces de programación de aplicaciones (API), como la conectividad de base de datos Java (JDBC), JavaServer Pages (JSP) y Java Servlet. Este marco utiliza varias técnicas nuevas, como la programación orientada a aspectos (AOP), el objeto Java antiguo simple (POJO) y la inyección de dependencia (DI), para desarrollar aplicaciones empresariales.

RowMapper

Esta es una interfaz funcional y, por lo tanto, se puede usar como destino de asignación para una expresión lambda o una referencia de método. La interfaz del mapeador de filas se usa para obtener registros de cualquier base de datos utilizando el método query() de la clase JdbcTemplate al pasar la instancia del mapeador de filas. 

Lea más sobre RowMapper aquí: Spring – Interfaz de RowMapper con ejemplo

Extractor de conjunto de resultados

Esta es una interfaz funcional y, por lo tanto, se puede usar como destino de asignación para una expresión lambda o una referencia de método. El ResultSetExtractor se usa para obtener registros de la base de datos usando el método query() de la clase J dbcTemplate donde necesitamos pasar la instancia de ResultSetExtractor.

Lea más sobre ResultSetExtractor aquí: Spring – ResultSetExtractor

Diferencia entre RowMapper y ResultSetExtractor

RowMapper

Extractor de conjunto de resultados

Se utiliza para obtener registros de la base de datos utilizando el método query() de la clase JdbcTemplate pasando la instancia del mapeador de filas. Se utiliza para obtener registros de la base de datos utilizando el método query() de la clase JdbcTemplate pasando la instancia de ResultSetExtractor.
Nos permite mapear una fila de las relaciones con la instancia de una clase definida por el usuario. Acepta un ResultSet y devuelve la lista.
Sintaxis del método de consulta: consulta T pública (String sql, RowMapper<T> rm)   Sintaxis del método de consulta: consulta T pública (String sql, ResultSetExtractor<T> rse)  
Define solo un método mapRow que acepta la instancia de ResultSet e int como la lista de parámetros Define solo un método extractData que acepta la instancia de ResultSet como parámetro
Sus objetos son típicamente apátridas y, por lo tanto, reutilizables; son una opción ideal para implementar la lógica de mapeo de filas en un solo lugar. Su objeto generalmente no tiene estado y, por lo tanto, es reutilizable, siempre que no acceda a recursos con estado o mantenga el estado resultante dentro del objeto.
Por lo general, es una opción más simple para el procesamiento de ResultSet, Las implementaciones de la interfaz Result Extractor realizan el trabajo de extraer resultados de un ResultSet.
Ahorra mucho código porque agrega internamente los datos de ResultSet a la colección. En la interfaz del extractor de resultados, no necesitamos preocuparnos por el manejo de excepciones porque las SQLExceptions se detectarán y manejarán llamando a JdbcTemplate.
En la interfaz del mapeador de filas, las SQLExceptions serán capturadas y manejadas por JdbcTemplate que realiza la llamada. Se utiliza para extraer todo el ResultSet (posiblemente varias filas).

Todas las clases de implementación conocidas del mapeador de filas son las siguientes: 

BeanPropertyRowMapper, ColumnMapRowMapper, DataClassRowMapper, MappingSqlQueryWithParameters.RowMapperImpl, SingleColumnRowMapper y UpdatableSqlQuery.RowMapperImpl

Todas las clases de implementación conocidas de la interfaz ResultSetExtractor son las siguientes: 

AbstractLobStreamingResultSetExtractor, RowMapperResultSetExtractor y SqlRowSetResultSetExtractor

Publicación traducida automáticamente

Artículo escrito por mayank007rawa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *