Rumah > Java > javaTutorial > teks badan

Bagaimana untuk memulakan aplikasi Spring Boot + JPA + MySQL

王林
Lepaskan: 2024-08-21 22:31:21
asal
531 orang telah melayarinya

Sebelum kita meneruskan untuk mencipta projek, saya akan menerangkan secara ringkas tentang teknologi Spring Boot, JPA dan MySQL.

.
  • Spring Boot: ialah rangka kerja Java yang digunakan untuk memudahkan pembangunan aplikasi Spring, membenarkan penciptaan aplikasi kendiri, yang boleh dilaksanakan dengan arahan mudah, tanpa memerlukan konfigurasi yang kompleks.
  • JPA: Java Persistence API ialah spesifikasi Java yang mentakrifkan cara objek Java harus dipetakan ke pangkalan data hubungan (ORM).
  • MySQL: Sistem pengurusan Pangkalan Data hubungan sumber terbuka (RDBMS) yang terkenal di dunia. Ia digunakan secara meluas untuk menyimpan, menyusun dan mengurus volum data yang besar dalam aplikasi web dan perusahaan.

Dengan 3 teknologi ini, kami boleh membangunkan aplikasi web yang teguh, berskala dan berprestasi tinggi.

Penciptaan Projek

Kami akan membuat projek dalam alat dalam talian yang dipanggil: Spring Initializr yang memudahkan penciptaan projek Spring Boot.

Apabila anda memasukkan URL, anda akan melihat skrin seperti ini:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Kami akan mengkonfigurasi beberapa perkara di sebelah kiri, seperti:

  • Jenis Projek: Maven
  • Bahasa: Jawa
  • Versi Spring Boot: 3.3.2

Dalam Metadata Projek anda akan pergi melalui:

  • Kumpulan: br.com.(cth: br.com.josemarinho)
  • Artifak dan Nama: spring-jpa-mysql
  • Penerangan: Projek menggunakan Spring Boot, JPA dan MySQL
  • Nama pakej: dijana secara automatik berdasarkan Kumpulan dan Artifak.
  • Pembungkusan: Balang
  • Jawa: 17

Di sebelah kanan anda akan mempunyai kebergantungan projek kami, kami perlu menambah 3, iaitu:

  • Jaman Musim Bunga
  • Data Musim Bunga JPA
  • Pemandu MySQL

Pada akhirnya ia akan kelihatan seperti ini:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Selepas konfigurasi, hanya tekan butang Jana, di mana anda akan mula memuat turun Zip yang mengandungi semua direktori/fail projek. Selepas itu, hanya nyahzip dan buka dalam IDE pilihan anda.

Larian pertama

Sebaik sahaja anda membuka projek dan cuba menjalankan program, ia akan melaporkan ralat masa jalan yang mengatakan perkara berikut:

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
Salin selepas log masuk

Ini berlaku kerana Spring Boot tidak boleh mengkonfigurasi Sumber Data untuk aplikasi secara automatik. Bolehkah kita mengkonfigurasi?

Dalam projek itu akan ada direktori yang dipanggil sumber, dalam direktori ini terdapat beberapa fail, antaranya fail yang dipanggil application.properties yang mana tetapan projek but spring terletak. Saya suka menggunakan versi YAML/YMLnya, jadi padamkan sahaja fail ini dan buat satu lagi yang dipanggil application.yml, kelihatan seperti ini:

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Mari kita tentukan url tempat apl kita akan disambungkan, pemandu, nama pengguna dan kata laluan:

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
Salin selepas log masuk

Dalam application.properties ia akan kelihatan seperti ini:

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
Salin selepas log masuk

Baiklah, sekarang jalankan projek semula dan anda akan melihat output seperti ini.

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Penciptaan Entiti

Dalam pangkalan data saya, saya mempunyai jadual ringkas yang dipanggil pengguna di mana terdapat 2 medan:

  • id: kenaikan auto integer kunci utama
  • pengguna: varchar(255)

Como iniciar um aplicativo Spring Boot + JPA + MySQL

Dengan itu, kami akan mengambil langkah pertama untuk memetakan jadual ini dalam konteks Java, mewujudkan Entiti. Untuk melakukan ini, buat kelas yang dipanggil Pengguna, pada akhirnya ia sepatutnya kelihatan seperti ini:

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

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

    // Getters e Setters
}
Salin selepas log masuk
  • @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> { }
Salin selepas log masuk

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());
    }
}
Salin selepas log masuk

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.

Atas ialah kandungan terperinci Bagaimana untuk memulakan aplikasi Spring Boot + JPA + MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!