首页 > Java > java教程 > 正文

如何启动 Spring Boot + JPA + MySQL 应用程序

王林
发布: 2024-08-21 22:31:21
原创
531 人浏览过

在我们开始创建项目之前,我先简单介绍一下Spring BootJPAMySQL.

是什么技术。
  • Spring Boot:是一个Java框架,用于简化Spring应用程序的开发,允许创建独立的应用程序,只需简单的命令即可执行,无需复杂的配置。
  • JPA:Java Persistence API 是一种 Java 规范,定义了 Java 对象应如何映射到关系数据库 (ORM)。
  • MySQL:世界著名的开源关系数据库管理系统(RDBMS)。它广泛用于存储、组织和管理 Web 和企业应用程序中的大量数据。

通过这 3 项技术,我们可以开发健壮、可扩展且高性能的 Web 应用程序。

项目创建

我们将在一个名为 Spring Initializr 的在线工具中创建项目,该工具有助于 Spring Boot 项目的创建。

当您输入网址时,您将看到如下屏幕:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

我们将在左侧配置一些东西,例如:

  • 项目类型:Maven
  • 语言:Java
  • Spring Boot 版本:3.3.2

在项目元数据中,您将通过:

  • 群组:br.com。(例如:br.com.josemarinho)
  • 工件和名称:spring-jpa-mysql
  • 描述:使用 Spring Boot、JPA 和 MySQL 的项目
  • 包名:根据Group和Artifact自动生成。
  • 包装:罐子
  • Java:17

右侧会有我们项目的依赖,我们需要添加3个,即:

  • Spring Web
  • Spring Data JPA
  • MySQL 驱动程序

最后会是这样的:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

配置后,只需按生成按钮,您将开始下载包含所有项目目录/文件的Zip。然后,只需解压并在您喜欢的 IDE 中打开即可。

第一次运行

一旦您打开项目并尝试运行该程序,它将报告一个运行时错误,内容如下:

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class
登录后复制

出现这种情况是因为 Spring Boot 无法自动为应用程序配置数据源。我们要配置吗?

项目中会有一个名为resources的目录,该目录下有一些文件,其中有一个名为application.properties的文件,这是Spring Boot项目的设置所在。我喜欢使用它的 YAML/YML 版本,所以只需删除这个文件并创建另一个名为 application.yml 的文件,如下所示:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

让我们定义我们的应用程序将连接的 url驱动程序用户名密码

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: username
    password: password
    url: jdbc:mysql://127.0.0.1:3306/seu_banco_de_dados
登录后复制

在 application.properties 中它看起来像这样:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.url=jdbc:mysql://localhost:3306/seu_banco_de_dados
登录后复制

好的,现在再次运行该项目,您将看到这样的输出。

Como iniciar um aplicativo Spring Boot + JPA + MySQL

实体创建

在我的数据库中,我有一个名为 users 的简单表,其中有 2 个字段:

  • id:主键整数自增
  • 用户:varchar(255)

Como iniciar um aplicativo Spring Boot + JPA + MySQL

有了它,我们将迈出第一步,将该表映射到 Java 上下文中,创建一个实体。为此,创建一个名为 User 的类,最终它应该如下所示:

@Entity
@Table(name = "usuarios")
public class Usuario {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String usuario;

    // Getters e Setters
}
登录后复制
  • @Entity: Marca a classe como uma entidade JPA. Isso indica ao JPA que a classe deve ser persistida em um banco de dados.
  • @Table(name = "produto"): Especifica o nome da tabela no banco de dados à qual a entidade está mapeada. Se essa anotação não for fornecida, o JPA assumirá que o nome da tabela é o mesmo que o nome da classe.
  • @Id: Indica que o campo é a chave primária da entidade.
  • @GeneratedValue: Indica a estratégia que iremos gerar os valores, no caso escolhemos que o próprio banco de dados irá gerar automaticamente para nós, o padrão é o GenerationType.AUTO.

Agora que temos nossa entidade já desenvolvida precisamos criar nossos Repositórios que implementarão o JPA para realizar manipulações no Banco de Dados.

Criação dos Repositórios utilizando JPA

Para iniciar crie uma interface chamada UsuarioRepositorio, essa interface vai herdar as características de JpaRepository<> passando dois valores genéricos, o primeiro é a entidade e o segundo é o tipo do Id. Não podemos deixar de esquecer de anotar a classe com a anotação @Repository, ficando dessa forma:

@Repository
public interface UsuarioRepositorio extends JpaRepository<Usuario, Integer> { }
登录后复制

O JpaRepository é uma interface do Spring Data JPA que fornece diversos métodos prontos para realizar operações de acesso a dados em uma aplicação, como por exemplo o findAll() que retorna todos os dados de uma determinada tabela de banco de dados. No final do artigo estarei deixando alguns links falando mais sobre.

Já temos o suficiente para realizar algumas consultas, vamos criar um ponto de entrada na nossa aplicação para ver esses dados.
Crie uma controller chamada: UsuariosController.
Nela vamos anotar com 2 anotações: @RestController e @RequestMapping("/v1/usuarios") para mapear a rota da nossa controller

Vamos fazer injeção de dependência da UsuarioRepository e criar um endpoint GET para obter os dados da controller.

No final ficará assim:

@RestController
@RequestMapping("/v1/usuarios")
public class UsuarioController {

    private UsuarioRepositorio usuarioRepositorio;

    public UsuarioController(UsuarioRepositorio usuarioRepositorio) {
        this.usuarioRepositorio = usuarioRepositorio;
    }

    @GetMapping()
    public ResponseEntity getUsuarios() {
        return ResponseEntity.status(HttpStatus.OK).body(usuarioRepositorio.findAll());
    }
}
登录后复制

Note que estou utilizando o método findAll() que mencionei mais acima existente na repository.

Em minha tabela de banco de dados, já possuo alguns dados. Fazendo uma consulta simples, virá o seguinte resultado:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Vimos que temos 3 dados na tabela.

Após salvar o conteúdo da controller e executar novamente o projeto, quando realizarmos uma requisição do tipo GET na url localhost:8080/v1/usuarios, virá o seguinte resultado:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Vemos que o resultado que foi resgatado ao realizar uma consulta no banco de dados foi exatamente o mesmo ao fazer uma requisição GET em nossa aplicação graças ao JPA e ao Spring Boot.

Chegamos ao final de mais um post. Estarei deixando alguns links de referência:

  • Jpa Repository
  • Anotação Generated Value
  • Driver MySQL JPA
  • Spring Boot YAML vs Properties
  • Spring Data JPA

O repositório do artigo se encontra nesse link: Repositório Projeto

Um abraço e bons estudos! Até mais.

以上是如何启动 Spring Boot + JPA + MySQL 应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!