En esta entrada veremos cómo implementar el acceso a base de datos. Para ello, utilizaremos los repositorios de datos que Spring nos ofrece, y que nos harán la vida mucho más fácil. Concretamente, utilizaremos el repositorio de datos denominado CrudRepository, que como su propio nombre indica, nos posibilitará la realización de operaciones CRUD contra nuestra base de datos. Existe otro tipo de repositorio más completo que veremos en siguientes entradas.
Para utilizar este tipo de repositorio de Spring Framework, simplemente tendremos que crear una interfaz que extienda de CrudRepository, tal y como hemos hecho al crear la interfaz de acceso a datos LibroJpaRepository. Debemos especificar también, la clase que representa la entidad que va a ser gestionada por el repositorio, en este caso Libro, y el tipo de dato utilizado para representar la clave primaria en dicha entidad, en este caso un Integer (línea 6). Y nada más!
Las operaciones básicas de tipo CRUD las proporciona el propio repositorio sin necesidad de programar absolutamente nada más. Los métodos que proporciona el repositorio son los siguientes.
En la siguiente entrada hablaremos de las clases que van a consumir este repositorio de datos. Por una parte el controlador, que será el encargado de atender las peticiones HTTP y servir los datos, y por otra parte la clase que hará las veces de fachada (patrón facade), encapsulando la lógica de negocio necesaria para atender las peticiones que llegan al controlador y realizar las consultas a base de datos pertinentes por mediación del repositorio de datos.
Para utilizar este tipo de repositorio de Spring Framework, simplemente tendremos que crear una interfaz que extienda de CrudRepository, tal y como hemos hecho al crear la interfaz de acceso a datos LibroJpaRepository. Debemos especificar también, la clase que representa la entidad que va a ser gestionada por el repositorio, en este caso Libro, y el tipo de dato utilizado para representar la clave primaria en dicha entidad, en este caso un Integer (línea 6). Y nada más!
Las operaciones básicas de tipo CRUD las proporciona el propio repositorio sin necesidad de programar absolutamente nada más. Los métodos que proporciona el repositorio son los siguientes.
- save(Libro libro): guarda o actualiza un libro y devuelve la entidad con el identificador asignado.
- findOne(Integer id): devuelve un libro determinado.
- findAll(): devuelve un Iterable<Libro> con todos los libros de base de datos.
- count(): devuelve un dato de tipo Long con el número de libros.
- delete(Integer id): borra un libro determinado.
- exists(Integer id): retorna un boolean que informa de la existencia de un determinado libro.
En la siguiente entrada hablaremos de las clases que van a consumir este repositorio de datos. Por una parte el controlador, que será el encargado de atender las peticiones HTTP y servir los datos, y por otra parte la clase que hará las veces de fachada (patrón facade), encapsulando la lógica de negocio necesaria para atender las peticiones que llegan al controlador y realizar las consultas a base de datos pertinentes por mediación del repositorio de datos.
Pulsa aquí para acceder al código de esta entrada en mi repositorio Github