0% encontró este documento útil (0 votos)
2K vistas48 páginas

Sesión 23 Spring Boot

El documento presenta una introducción a Spring Boot y Spring Data JDBC. Explica conceptos clave como agregados, agregados raíz y repositorios. También cubre la configuración de un proyecto en Spring Boot para conectarse a una base de datos MySQL y realizar operaciones CRUD usando Spring Data JDBC.

Cargado por

son_goten
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2K vistas48 páginas

Sesión 23 Spring Boot

El documento presenta una introducción a Spring Boot y Spring Data JDBC. Explica conceptos clave como agregados, agregados raíz y repositorios. También cubre la configuración de un proyecto en Spring Boot para conectarse a una base de datos MySQL y realizar operaciones CRUD usando Spring Data JDBC.

Cargado por

son_goten
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 48

Ciclo 2: Programación Básica

Sesión 23:
Spring Boot

Programa Ciencias de la Computación e Inteligencia Artificial


Escuela de Ciencias Exactas e Ingeniería
Universidad Sergio Arboleda
Bogotá
Contenido

• Introducción Spring
• Spring Data JDBC
• CRUD usando Spring
Introducción a Spring
Spring data

Es un Framework de la familia de proyectos de Spring.

Simplifica la conexión entre la capa del modelo y el controlador.

Reduce el código repetitivo.


Spring data

Se utilizan los siguiente conceptos:

Agregado (agggregate).

Agregado raíz (agggregate root).

Repositorio (repository).
Spring data - Agregado

Un agregado es un conjunto de entidades que se


relacionan y dependen entre sí.

Cada agregado debe tener una entidad padre o raíz


(agregado raíz) de la que depende.

La existencia del agregado está ligada a la existencia del


agregado raíz.

Ejemplo: En un hospital se tiene la entidad Paciente y la entidad


contactoSeguridad. La entidad paciente es el agregado raíz, el
contactoSeguridad no existe en el sistema si no está asociado a un
paciente.
Spring data - Repositorio

Colección de entidades o agregados.

Generalmente los repositorios son el medio de acceso a la base de datos.

Normalmente se crea un repositorio por cada entidad raíz.

Se Usan para:

Persistir entidades o agregados (guardar/actualizar).

Recuperar entidades o agregados (consultar).

Recuperar colecciones de entidades que cumplan una condición (consultar).


Spring Data JDBC
Spring data - JDBC

Módulo de Spring Data.

Facilita la implementación de los repositorios.

Es restringido, no tiene todas las características de un ORM (mapeo relacional de objetos).

Simple.
Spring data – JDBC - Configuración
Se debe tener el plugin de SpringBoot en Netbeans.

Tools > Plugins


Spring data – JDBC - Configuración

En la pestaña “Plugins
disponibles” se busca el plugin
llamado:
NB SpringBoot
Spring data – JDBC - Configuración

Si el Plugin está disponible para


descargar en el asistente,
seleccionarlo e instalarlo con el
botón de la parte inferior.

Si no se encuentra, intentar usar


“Check for Newest” y volver a
buscarlo.

Si este proceso es exitoso, saltar a


la diapositiva 16.
Spring data – JDBC - Configuración

En caso de que no se encuentre el


Plugin con los pasos anteriores.

Se puede descargar en el siguiente


link:

https://github.com/AlexFalappa/n
b-springboot/releases

Clic donde se muestra en la


imagen.
Spring data – JDBC - Configuración

Después de descargarlo, en la
pestaña de “Downloaded”.

Clic en el botón “Add Plugins…”

Buscar el archivo .nbm descargado


y abrirlo.
Spring data – JDBC - Configuración

Finalmente, seleccionar el
elemento agregado y presionar en
“Install”.
Spring data – JDBC - Configuración

Al finalizar la instalación se debe


reiniciar NetBeans dando clic en
“Finish”.
Spring data – JDBC
Configuración MAVEN
Este paso es importante:

En la barra de menú:

Tools > Options


Spring data – JDBC
Configuración MAVEN
En la pestaña “Maven” observar qué versión de
Maven se tiene actualmente.

Si se tiene la versión 3.6.3, saltar a la diapositiva


23.
Spring data – JDBC
Configuración MAVEN
Se debe descargar la versión adecuada en
el siguiente link:

https://stackoverflow.com/questions/597
63531/maven-dependencies-are-failing-
with-a-501-error

Haciendo clic donde se muestra en la


imagen.
Spring data – JDBC
Configuración MAVEN
Descomprimir el archivo usando la
opción “Extraer aquí”.
Spring data – JDBC
Configuración MAVEN
Después de descomprimir el archivo,
volviendo a la ventana ”Options”.

En “Maven Home” seleccionar “Browse…”


Spring data – JDBC
Configuración MAVEN
Buscar la carpeta creada que debe llamarse como
se muestra en la imagen.
Spring data – JDBC – Crear proyecto

Para crear un proyecto de Spring,


en Netbeans clic en “New
Project”.

En la ventana emergente,
selección en la carpeta “Maven” y
en el tipo de proyecto a crear
“Spring Boot Initializr Project”.

Clic en “Next”.
Spring data – JDBC – Crear proyecto

En esta ventana se puede ponerle


un nombre al proyecto en el
campo “Name”.

Es importante NO usar la versión


de Java 11, se puede usar la
versión 8 (que fue la que se instaló
en el tutorial de Netbeans) o la 14
también es funcional.
Spring data – JDBC – Crear proyecto

En el menú buscar y seleccionar


las dependencias “Spring Data
JDBC” y “MySQL Driver”.

Clic en “Next”.
Spring data – JDBC – Crear proyecto

Por último, un nombre para el


proyecto de Java contenido en el
proyecto de Spring.

Clic en “Finish”.
Spring data – JDBC –
Configurar proyecto
En el proyecto creado debe haber una archivo:
Other Sources > src/main/resourses > default package >
application.properties

En este archivo escribir el siguiente código usando la contraseña


que cada uno decidió para MySQL:

“biblioteca” es el nombre del esquema en Mysql que se va a usar, este valor


debe ser cambiado por el nombre del esquema que se quiera usar.
Spring data – JDBC –
Posible error
Es posible que en el nombre del proyecto se vea el mensaje
[Unloadable], en ese caso…

(continua en la siguiente diapositiva)


Spring data – JDBC –
Posible error
Clic derecho sobre el proyecto > Resolve Project Problems…
Spring data – JDBC –
Posible error
Clic en “Resolve…”

Este puede ser un proceso lento.

El mensaje de Unloadable debería desaparecer después


de esto.
Spring data – JDBC –
Posible error

En caso de que en la terminal de Netbeans aparezca un mensaje similar a este:

Es mensaje significa que el Maven no está funcionando correctamente debido a la versión, revisar
la configuración de Maven explicada en la diapositiva XX.
Spring data – JDBC – Ejecución
Abrir el archivo:
Source Packages > com.example.demo > DemoApplication.java

Y ejecutarlo.

Si todo quedó bien configurado, después de unos minutos el


resultado en la consola debería ser:

Esto significa que el proyecto de


Spring está listo para hacer
consultad CRUD.
Spring data – JDBC – Ejecución

En caso de que salga este mensaje de error:

Es debido a que la versión de Java no es compatible, revisar la diapositiva 24.


CRUD usando Spring
Spring data – JDBC - Configuración
Agregar Spring Data JDBC al proyecto.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

Es necesario incluir el driver de conexión mostrado la sesión anterior.

Si se crea el proyecto con SpringBoot como se explicó en esta sesión, no es necesario hacer
este paso.
Spring Data – JDBC - Configuración
Crear un archivo de Java dentro del proyecto nombrado como la clase que se desea usar.

Ejemplo: Se tiene una base de datos en MySQL con una tabla de clientes, se crea la clase
Cliente en Java
@Table(“Cliente”)
public class Cliente {
@id
@column(“ID”)
private Long idCliente;
@column(“Nombre”)
private Long nombre;
@column(“Dirección”)
private Long direccion;

// Constructores
// Métodos
}
Spring data – JDBC - Configuración
El decorador @Table() le permite a Spring
saber cuál es la tabla que se está
representando con esta clase.
El decorador @id le permite a Spring saber
cuál es el atributo único (Primary Key), por
@Table(“Cliente”)
el momento sólo se deben usar como
public class Cliente {
primary key auto-incrementales auto-
@id
generados.
@column(“ID”)
private Long idCliente;
El decorador @column() le permite a
@column(“Nombre”)
Spring saber cuál es el nombre de la
private Long nombre;
columna que se asocia con el atributo de la
@column(“Dirección”)
clase que se define a continuación.
private Long direccion;
Nótese que los decoradores no requieren
// Constructores de punto y coma (;) al final.
// Métodos (CRUD)
}
Spring data – JDBC - Configuración
Se crea el repositorio de la clase que se creó, para esto se crea una nueva interfaz de java con
el nombre RepositorioNombreDeLaClase que extiende la clase CrudRepository así:

@Repository
Public interface RepositorioCliente extends CrudRepository<Cliente, Long>{}

Decorador para referenciar la La clase creada. El tipo de valor del Primary Key.
creación de un repositorio.
Spring data – JDBC - Configuración
Finalmente en la clase principal (donde está el main) se agregan los siguientes elementos:

@SpringBootApplication
public class Aplicacion{ El texto en negrilla es lo que se debe
@Autowired agregar, el resto es parte del código
RepositorioCliente repositorioCliente; autogenerado por el FrameWork de
Spring.
public static void main(String[] args){
SpringApplication.run(MuseoApplication.class, args);
}
@Bean
ApplicationRunner applicationRunner(){
return args ->(
//Código pruebas (llamado al CRUD)
);
}
}
CRUD con JDBC - Create
Para crear registros en la tabla se usan los constructores a través de los
métodos crearCliente()
@Table(“Cliente”)
public class Cliente {
@id
@column(“ID”)
Se crea un único constructor que
private Long idCliente;
@column(“Nombre”) contemple todos los atributos de la
private Long nombre; clase. Adicionalmente, se crean
@column(“Dirección”) varias versiones del método
private Long direccion;
crearCliente que utilizan el
private Cliente(Long idCliente, String nombre, String ciudad){ constructor
this.idCliente = idCliente;
this.nombre = nombre;
this.ciudad = ciudad;
}
public static crearCliente(Long idCliente, String nombre, String ciudad){
return new Cliente(idCliente, nombre, ciudad)
}
public static crearCliente(String nombre, String ciudad){
return new Cliente(null , nombre, ciudad)
}
}
CRUD con JDBC - Retrieve
Se puede recuperar toda la lista de elementos de una tabla utilizando
uno de los métodos de la interfaz del repositorio:
@SpringBootApplication
public class Aplicacion{
@Autowired
RepositorioCliente repositorio El método findAll() retorna un
elemento List<clase>.
public static void main(String[] args){
SpringApplication.run(MuseoApplication.class, args);
}
@Bean
ApplicationRunner applicationRunner(){
return args ->(
List<Cliente> resultado = repositorio.findAll();
);
}
}
CRUD con JDBC - Retrieve
Se puede recuperar un elemento de una tabla en forma de diccionarios
utilizando uno de los métodos de la interfaz del repositorio:
@SpringBootApplication
public class Aplicacion{
@Autowired
RepositorioCliente repositorio; Para poder usar el método
findById() es necesario conocer el
public static void main(String[] args){
ID del registro.
SpringApplication.run(MuseoApplication.class, args);
}
@Bean
ApplicationRunner applicationRunner(){
return args ->(
Cliente resultado = repositorio.findById(1);
);
}
}
CRUD con JDBC - Update
Para actualizar un registro es necesario primero encontrarlo con el
método findById() y luego utilizando los métodos SET.
@SpringBootApplication
public class Aplicacion{
@Autowired
RepositorioCliente repositorio; Para poder usar el método
findById() es necesario conocer el
public static void main(String[] args){
ID del registro.
SpringApplication.run(MuseoApplication.class, args);
}
@Bean
ApplicationRunner applicationRunner(){
return args ->(
Cliente resultado = repositorio.findById(1);
);
}
}
CRUD con JDBC - Update
Para crear registros en la tabla se usan los constructores a través de los
métodos crearCliente()
@SpringBootApplication
@Table(“Cliente”)
public class Cliente { public class Aplicacion{
@id @Autowired
@column(“ID”) RepositorioCliente repositorio;
private Long idCliente;
@column(“Nombre”) public static void main(String[] args){
private Long nombre; SpringApplication.run(MuseoApplication.class, args);
@column(“Dirección”) }
private Long direccion; @Bean
ApplicationRunner applicationRunner(){
return args ->(
… RepositorioMuseo repositorio;
Cliente resultado = repositorio.findById(1);
public void setNombre(String nombre){ resultado.setNombre(“nuevo Nombre”);
this.nombre = nombre; repositorio.save(resultado)
} );
}
public void setNombre(String direccion){ }
this.direccion = direccion;
}
}
CRUD con JDBC - Delete
Para eliminar un registro primero podemos buscarlo con el método
findById() y luego utilizar el método de la interfaz del repositorio.

@SpringBootApplication
public class Aplicacion{
@Autowired Para poder usar el método
RepositorioCliente repositorio; findById() es necesario conocer el
ID del registro.
public static void main(String[] args){
SpringApplication.run(MuseoApplication.class, args);
}
@Bean
ApplicationRunner applicationRunner(){
return args ->(
RepositorioMuseo repositorio;
Cliente resultado = repositorio.findById(1);
repositorio.delete(resultado);
);
}
}
Ejercicios
Ejercicios
• Construya un esquema en MySQL con una tabla llamada Productos. La tabla debe tener
los atributos: código, nombre, precio e inventario (inicialmente la tabla debe estar vacía)
• Implemente las operaciones CRUD utilizando Spring Data JDBC
• Utilizando los métodos implementados en el punto anterior:
- Ingrese los siguientes registros a la tabla
código nombre precio inventario
1 Manzanas 5000.0 25
2 Limones 2300.0 15
3 Peras 2700.0 33
4 Arandanos 9300.0 5
5 Tomates 2100.0 42

- Actualice el inventario de las peras a 50


- Agregue 2 nuevas frutas
- Verifique que los cambios en la base de datos

Tomado de
: https://www.google.com/url?sa=i&url=https%3A%2F%2Ffanyv88.com%3A443%2Fhttps%2Fwww.codejava.net%2Fjava-se%2Fswing%2Fjpanel-basic-tutorial-and-examples&psig=AOvVaw3b7cNlPeYc2QuqfVqc1LuL&ust=1622342894827000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCOi-n7Lw7fACFQAAAAAdAAAAABAe
Referencias

[1] Sierra, K., & Bates, B. (2013). Head first java. " O'Reilly Media, Inc.".
[2] Martin, R. C. (2009). Clean code: a handbook of agile software craftsmanship. Pearson Education.
(Chap 1, 2)
[3] Sommerville, I. (2016). Software Engineering GE. Pearson Australia Pty Limited. (Chap 6, 6.3)
[4] Coronel, C., Morris, S., & Rob, P. (2011). Bases de datos: diseño, implementación y administración.
Cengage Learning Editores. (Chap 1)
[5] Seidl, M., Scholz, M., Huemer, C., & Kappel, G. (2015). UML@ classroom: An introduction to
object-oriented modeling. Springer. (Chap 1, 4)

También podría gustarte