Spring Boot - DataRest conexión con MySQL y manejo con JPA

La mayoría de las configuraciones que se muestran en la red, incluida la configuración de spring, viene algo confusa, así que aquí hay una configuración simple a MySQL y se exponen los datos con ayuda de DataRest.

 

1. Configuración Maven

<groupId>com.ledze.springboot</groupId>
<artifactId>ledze-springboot-mysql</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>ledze-springboot-mysql</name>
<description>Spring Boot demo to connect to a DB MySQL and DataRest</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>spring-boot-starter-jpa</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>RELEASE</version>
<scope>runtime</scope>
</dependency>

 

2. Configuración Properties

spring.datasource.url= jdbc:mysql://localhost:3306/ledzeschemamysqldb
spring.datasource.username= ledzeuserdb
spring.datasource.password= 123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
server.port=
8001

 

3. Código Java - Entidad

/**
* Código generado por Gerado Pucheta Figueroa
* Twitter: @ledzedev
* http://ledze.mx
* 09/Dec/2016.
*/
@Entity
public class Usuario {


@Id
@GeneratedValue
private Long id;


private String nombre;

private String apaterno;

private String amaterno;

private String email;

private String password;

public Usuario() {//seguimos sin saber por qué jpa requiere uno de estos
}


public Usuario(String nombre, String apaterno, String amaterno, String email) {
this.nombre = nombre;
this.apaterno = apaterno;
this.amaterno = amaterno;
this.email = email;
this.password = RandomStringUtils.randomAlphanumeric(5).concat(
RandomStringUtils.randomAscii(3)
);
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApaterno() {
return apaterno;
}

public void setApaterno(String apaterno) {
this.apaterno = apaterno;
}

public String getAmaterno() {
return amaterno;
}

public void setAmaterno(String amaterno) {
this.amaterno = amaterno;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

@Override
public String toString() {

return "Usuario{" +
"id=" + id +
", nombre='" + nombre + '\'' +
", apaterno='" + apaterno + '\'' +
", amaterno='" + amaterno + '\'' +
", email='" + email + '\'' +
'}';
}
}

 

4. Código Java - Interfaz que habla con la BD.

/**
* Código generado por Gerado Pucheta Figueroa
* Twitter: @ledzedev
* http://ledze.mx
* 09/Dec/2016.
*/
@RepositoryRestResource
public interface RepositorioUsuariosDB extends JpaRepository<Usuario, Long> {

Collection<Usuario> findByEmail(@Param("m") String email);
}

 

5. MySQL - Tabla usuarios en la base de datos.

 

Este es el contenido de la tabla de usuarios en la base de datos de MySQL

 

6. Browser - Consulta de datos en web, expuestos por DataRest.

 

 

Te puedes descargar mi código directamente del repositorio en github o en formato zip.