Otra forma de hacerlo es guardar directamente la lista ,
esta es una forma de hacerlo:
userRepository.saveAll(listUsers);
Introducción a Spring Boot
¿Qué es Spring Boot?
Características principales de Spring Boot
Instalación de entorno de desarrollo: Windows
Instalación de entorno de desarrollo: macOS
Instalación de entorno de desarrollo: Ubuntu
Dependencias en Spring Boot
¿Qué es una dependencia?
Inversión de control y el patrón de inyección de dependencias
Autoconfiguration y runtime
Anotaciones para indicar dependencias en Spring Boot
Creación de proyecto bajo arquitectura de dependencias
Inyección de dependencia "Component"
Ejemplo de creación de dependencia propia
Configuración general de Spring Boot
Cambio de puerto y path
Uso de properties y valores
Uso de properties con ejemplo de generación de POJO
Qué son los logs y cómo usarlos
JPA con Spring y Spring Data
Modelado de entidades con JPA
Configuración de datasource con properties y classes
Registro en base de datos con JpaRepository
Uso de JPQL en anotación query
Uso de anotación value para apuntar a properties
Obtención de información usando Query methods
Uso de Query methods con Or, and, OrderBy, Between, Sort
Uso de JPQL con named parameters
Uso de anotación transactional
Rollback con la anotación transactional
REST con Spring Boot
CRUD bajo arquitectura REST
Métodos CREATE, UPDATE y DELETE
Probando la API REST
Pagination con Spring Boot
Conclusiones
Sigue aprendiendo Spring Boot
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 11
Preguntas 10
Otra forma de hacerlo es guardar directamente la lista ,
esta es una forma de hacerlo:
userRepository.saveAll(listUsers);
Para el que no quiera escribir mucho:
User user1 = new User("John", "[email protected]", LocalDate.of(2021, 3, 13));
User user2 = new User("Marco", "[email protected]", LocalDate.of(2021, 12, 8));
User user3 = new User("Daniela", "[email protected]", LocalDate.of(2021, 9, 8));
User user4 = new User("Marisol", "[email protected]", LocalDate.of(2021, 6, 18));
User user5 = new User("Karen", "[email protected]", LocalDate.of(2021, 1, 1));
User user6 = new User("Carlos", "[email protected]", LocalDate.of(2021, 7, 7));
User user7 = new User("Enrique", "[email protected]", LocalDate.of(2021, 11, 12));
User user8 = new User("Luis", "[email protected]", LocalDate.of(2021, 2, 27));
User user9 = new User("Paola", "[email protected]", LocalDate.of(2021, 4, 10));
Una cosa que puedes evitar cuando se guarda los usuarios es quitar la invocación del método stream e invocar el método forEach, quedando de esta manera.
list.forEach(userRepository::save);
Con esto se evita crear un stream para iterar la lista. El objetivo es iterar la lista y se puede invocando desde el objeto list el método forEach.
Como dato extra, h2 crea un endpoint y acceder a un tipo de terminal, como si fuera phpMyAdmin, a la hora de correr el programa, se puede acceder a ella mediante el path
/h2-console
Obvio primero iria lo de nuestro localhost, nuestro puerto y el path por default que tengamos, una vez accedido, en la parte de JDBC.url, le colocan la url que pusimos en la propiedad justo de la url, que en este caso el mio fue
jdbc:h2:mem:testDB
Una vez hecho esto accederan a la base de datos y se vera como un RDBMS y podran ejecutar querys, por ejemplo un
SELECT * FROM user
Y esto les traera los usuarios que acabamos de insertar en la BD
Aprendo mas en los comentarios que con este man del video
Me sale un error en la línea donde se llama el userRepository::save, me dice que el método no existe.
Que es JpaRepository ?
Es el package que contiene las interfaces que extienden de JPA para que estas clases se conecten a la base de datos. Estas gestionan información ya sea de buscar, borrar, actualizar o crear un registro en la base de datos.
Probablmente a algunos les salio un error de este estilo a este punto del curso :
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Error de Sintaxis en sentencia SQL "insert into [*]user (birth_date, email, name, id_user) values (?, ?, ?, ?)"; se esperaba "identifier"
En mi caso lo solucione por que tenia mal el nombre de mi tabla en la clase User.
Lo tenia asi MAL
@Table(name = "user") //Al parecer "user" no se puede usar como nombre de tabla
Y lo cambie asi:
@Table(name = "users") // Lo puse en plural
En si le estaba dando un nombre que al parecer esta resevado o por alguna razon no es posible usarlo.
Se puede aprovechar lombok para usar la anotacion @Builder, usar el metodo of de List y asi quede un poco mas limpio el codigo y funcional ejemplo:
userRepository.saveAll(
List.of(
User.builder()
.name("pedro perez")
.email("[email protected]")
.birthDate(LocalDate.of(1995, 3, 18))
.build(),
User.builder()
.name("Maria Rodriguez")
.email("[email protected]")
.birthDate(LocalDate.of(1999, 2, 20))
.build(),
User.builder()
.name("Jose Perez")
.email("[email protected]")
.birthDate(LocalDate.of(1997, 10, 27))
.build()
// crear lo que sean convenientes
));
Si les aparece este error:
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement “Create…”; expected “identifier”
El datasource debe quedar asi:
dataSourceBuilder.url("jdbc:h2:mem:test;NON_KEYWORDS=USER");
En h2 user es una palabra reservada https://github.com/h2database/h2database/issues/3363
Hola, un proceso útil para extraer métodos en IntelliJ es clic derecho/Refactor/Extract Method…
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.