在我們開始創建專案之前,我先簡單介紹一下這些技巧Spring Boot、JPA和MySQL。
透過這 3 項技術,我們可以開發健壯、可擴展且高效能的 Web 應用程式。
我們將在一個名為:Spring Initializr的線上工具中創建項目,這使得創建 Spring Boot 項目變得容易。
當你輸入網址時,你會看到這樣的畫面:
我們將在左側配置一些東西,例如:
在項目元資料中,您將通過:
右邊會有我們專案的依賴,我們需要增加3個,分別是:
最後會是這樣的:
設定完成後,只需按產生按鈕,您將開始下載包含所有專案目錄/檔案的Zip。然後,只需解壓縮並在您喜歡的 IDE 中打開即可。
一旦你打開專案並嘗試運行程序,它就會報告運行時錯誤,內容如下:
出現這種情況是因為 Spring Boot 無法自動為應用程式設定 DataSource。我們要配置嗎?
專案中會有一個名為 resources 的目錄,該目錄下方有一些文件,其中有一個名為 application.properties 的文件,這是 Spring Boot 專案的設定所在的位置。我喜歡使用它的 YAML/YML 版本,所以只需刪除這個文件並創建另一個名為 application.yml 的文件,如下所示:
讓我們定義我們的應用程式將連接的url、驅動程式、用戶名和密碼:
在 application.properties 中它看起來像這樣:
好的,現在再次運行該項目,你會看到這樣的輸出。
在我的資料庫中,我有一個名為 users 的簡單表,其中有 2 個欄位:
有了它,我們將邁出第一步,將該表映射到 Java 上下文中,並建立一個實體。為此,請建立一個名為 User 的類,最終它應該如下所示:
@Entity @Table(name = "usuarios") public class Usuario { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String usuario; // Getters e Setters }
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.
Para iniciar crie umainterfacechamada UsuarioRepositorio, essa interface vai herdar as características de JpaRepository<> passando dois valores genéricos, o primeiro é aentidadee o segundo é otipo 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{ }
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:
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:
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:
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中文網其他相關文章!