Rumah pangkalan data tutorial mysql Penyepaduan Pangkalan Data dengan Spring Boot : Amalan dan Alat Terbaik

Penyepaduan Pangkalan Data dengan Spring Boot : Amalan dan Alat Terbaik

Jul 16, 2024 pm 04:41 PM

Database Integration with Spring Boot : Best Practices and Tools

Menyepadukan pangkalan data dengan aplikasi Spring Boot ialah tugas biasa yang dilakukan oleh ramai pembangun. Spring Boot, digabungkan dengan Spring Data JPA, menyediakan rangka kerja yang teguh untuk bekerja dengan pangkalan data hubungan seperti MySQL. Selain itu, alatan seperti Flyway dan Liquibase membantu mengurus migrasi pangkalan data dengan cekap. Blog ini akan merangkumi amalan terbaik untuk menggunakan Spring Data JPA dengan pangkalan data hubungan, menyepadukan dengan MySQL dan mengurus migrasi pangkalan data dengan Flyway atau Liquibase

Menggunakan Spring Data JPA dengan Pangkalan Data Hubungan
Spring Data JPA memudahkan pelaksanaan lapisan capaian data dengan mengurangkan jumlah kod boilerplate. Ia menyediakan abstraksi repositori yang kuat untuk pelbagai stor data, menjadikan interaksi pangkalan data lebih mudah

Amalan Terbaik untuk Menggunakan Spring Data JPA :

Menyepadukan dengan Pangkalan Data SQL seperti MySQL :
MySQL ialah salah satu pangkalan data hubungan yang paling popular, dan menyepadukannya dengan Spring Boot adalah mudah.

Langkah untuk Mengintegrasikan MySQL dengan Spring Boot :
Tambah Ketergantungan: Tambahkan kebergantungan yang diperlukan untuk Spring Data JPA dan penyambung MySQL dalam pom.xml anda

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

Salin selepas log masuk

Konfigurasi Pangkalan Data : Konfigurasikan butiran sambungan pangkalan data dalam application.properties atau application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: rootpassword
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

Salin selepas log masuk

Tentukan Entiti Anda : Mulakan dengan mentakrifkan entiti JPA anda Setiap entiti mewakili jadual dalam pangkalan data

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(unique = true, nullable = false)
    private String email;

    // Getters and Setters
}

Salin selepas log masuk

Buat Repositori : Cipta antara muka repositori untuk melaksanakan operasi CRUD. Panjangkan JpaRepository untuk memanfaatkan kaedah terbina dalam dan kaedah pertanyaan tersuai

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
}

Salin selepas log masuk

Buat Lapisan Perkhidmatan: Gunakan lapisan perkhidmatan untuk merangkum logik perniagaan dan berinteraksi dengan repositori

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    // Create operation
    public User createUser(User user) {
        // Perform validation or business logic if needed
        return userRepository.save(user);
    }

    // Read operations

    public Optional<User> findUserById(Long id) {
        return userRepository.findById(id);
    }

    public Optional<User> findUserByEmail(String email) {
        return userRepository.findByEmail(email);
    }

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    // Update operation
    public User updateUser(Long id, User userDetails) {
        // Ensure the user exists
        User existingUser = userRepository.findById(id)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + id));

        // Update user details
        existingUser.setName(userDetails.getName());
        existingUser.setEmail(userDetails.getEmail());

        // Save updated user
        return userRepository.save(existingUser);
    }

    // Delete operation
    public void deleteUser(Long id) {
        // Ensure the user exists
        User existingUser = userRepository.findById(id)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + id));

        // Delete user
        userRepository.delete(existingUser);
    }
}

Salin selepas log masuk

Pengendalian Pengecualian :
Dalam kaedah updateUser dan deleteUser, anda mungkin mahu mengendalikan kes di mana pengguna dengan ID yang ditentukan tidak wujud. Anda boleh membuat pengecualian tersuai (cth., ResourceNotFoundException) dan membuangnya jika perlu

@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
    public ResourceNotFoundException(String message) {
        super(message);
    }
}

Salin selepas log masuk

Jalankan Pelayan MySQL : Pastikan pelayan MySQL sedang berjalan dan pangkalan data yang ditentukan (mydatabase) wujud. Anda boleh mencipta pangkalan data menggunakan MySQL CLI atau alat GUI seperti MySQL Workbench

Uji Sambungan : Jalankan aplikasi Spring Boot anda untuk mengesahkan sambungan ke pangkalan data MySQL. Jika dikonfigurasikan dengan betul, Spring Boot akan membuat jadual yang diperlukan secara automatik berdasarkan entiti anda

Migrasi Pangkalan Data dengan Flyway atau Liquibase :
Menguruskan perubahan skema pangkalan data adalah penting untuk mengekalkan integriti dan konsistensi aplikasi anda. Flyway dan Liquibase ialah dua alatan popular untuk mengendalikan migrasi pangkalan data.

Menggunakan Flyway untuk Migrasi Pangkalan Data
Flyway ialah alat migrasi yang menggunakan skrip SQL untuk mengurus versi pangkalan data

Tambah Kebergantungan : Tambah kebergantungan Flyway pada pom.xml anda

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
</dependency>

Salin selepas log masuk

Konfigurasikan Flyway : Konfigurasikan Flyway dalam application.properties atau application.yml

spring:
  flyway:
    enabled: true
    locations: classpath:db/migration

Salin selepas log masuk

Buat Skrip Migrasi : Letakkan skrip migrasi SQL anda dalam direktori src/main/resources/db/migration. Namakan skrip mengikut konvensyen penamaan Flyway (V1_Initial_Setup.sql, V2_Add_User_Table.sql, dsb.)

-- V1__Initial_Setup.sql
CREATE TABLE user (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

Salin selepas log masuk

Jalankan Migrasi : Flyway akan menjalankan migrasi secara automatik pada permulaan aplikasi

Menggunakan Liquibase untuk Migrasi Pangkalan Data :
Liquibase ialah satu lagi alat berkuasa untuk mengurus migrasi pangkalan data, menyokong format XML, YAML, JSON dan SQL.

Tambah Kebergantungan : Tambah kebergantungan Liquibase pada pom.xml anda

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
</dependency>

Salin selepas log masuk

Konfigurasikan Liquibase : Konfigurasi Liquibase dalam application.properties atau application.yml

spring:
  liquibase:
    enabled: true
    change-log: classpath:db/changelog/db.changelog-master.yaml

Salin selepas log masuk

Buat Fail ChangeLog : Tentukan perubahan pangkalan data anda dalam src/main/resources/db/changelog. Buat fail changelog induk (db.changelog-master.yaml) yang termasuk fail changelog lain

databaseChangeLog:
  - changeSet:
      id: 1
      author: yourname
      changes:
        - createTable:
            tableName: user
            columns:
              - column:
                  name: id
                  type: BIGINT
                  autoIncrement: true
                  constraints:
                    primaryKey: true
              - column:
                  name: name
                  type: VARCHAR(100)
                  constraints:
                    nullable: false
              - column:
                  name: email
                  type: VARCHAR(100)
                  constraints:
                    nullable: false
                    unique: true

Salin selepas log masuk

Jalankan Migrasi : Liquibase akan menjalankan migrasi secara automatik pada permulaan aplikasi

Kesimpulan
Penyepaduan pangkalan data dengan Spring Boot adalah lancar, terima kasih kepada Spring Data JPA, dan alatan seperti Flyway dan Liquibase menjadikan pengurusan migrasi pangkalan data menjadi mudah. Dengan mengikuti amalan terbaik yang digariskan dalam blog ini, anda boleh memastikan aplikasi Spring Boot anda berinteraksi dengan cekap dengan pangkalan data hubungan seperti MySQL, dan skema pangkalan data anda berkembang dengan lancar apabila aplikasi anda berkembang

Atas ialah kandungan terperinci Penyepaduan Pangkalan Data dengan Spring Boot : Amalan dan Alat Terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1273
29
Tutorial C#
1253
24
Peranan MySQL: Pangkalan Data dalam Aplikasi Web Peranan MySQL: Pangkalan Data dalam Aplikasi Web Apr 17, 2025 am 12:23 AM

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

Terangkan peranan log redo innoDB dan membatalkan log. Terangkan peranan log redo innoDB dan membatalkan log. Apr 15, 2025 am 12:16 AM

InnoDB menggunakan redolog dan undologs untuk memastikan konsistensi dan kebolehpercayaan data. 1. Pengubahsuaian halaman data rekod untuk memastikan pemulihan kemalangan dan kegigihan transaksi. 2.UNDOLOGS merekodkan nilai data asal dan menyokong penggantian transaksi dan MVCC.

Tempat Mysql: Pangkalan Data dan Pengaturcaraan Tempat Mysql: Pangkalan Data dan Pengaturcaraan Apr 13, 2025 am 12:18 AM

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Apr 19, 2025 am 12:22 AM

Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem.

Mysql: Dari perniagaan kecil ke perusahaan besar Mysql: Dari perniagaan kecil ke perusahaan besar Apr 13, 2025 am 12:17 AM

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

Bagaimanakah kardinaliti indeks MySQL mempengaruhi prestasi pertanyaan? Bagaimanakah kardinaliti indeks MySQL mempengaruhi prestasi pertanyaan? Apr 14, 2025 am 12:18 AM

Cardinality Indeks MySQL mempunyai kesan yang signifikan terhadap prestasi pertanyaan: 1. Indeks kardinaliti yang tinggi dapat lebih berkesan menyempitkan julat data dan meningkatkan kecekapan pertanyaan; 2. Indeks kardinaliti yang rendah boleh membawa kepada pengimbasan jadual penuh dan mengurangkan prestasi pertanyaan; 3. Dalam indeks bersama, urutan kardinaliti yang tinggi harus diletakkan di depan untuk mengoptimumkan pertanyaan.

Mysql for Beginners: Bermula dengan Pengurusan Pangkalan Data Mysql for Beginners: Bermula dengan Pengurusan Pangkalan Data Apr 18, 2025 am 12:10 AM

Operasi asas MySQL termasuk membuat pangkalan data, jadual, dan menggunakan SQL untuk melakukan operasi CRUD pada data. 1. Buat pangkalan data: createdatabasemy_first_db; 2. Buat Jadual: CreateTableBooks (Idintauto_IncrementPrimaryKey, Titlevarchar (100) NotNull, Authorvarchar (100) NotNull, Published_yearint); 3. Masukkan Data: InsertIntoBooks (Tajuk, Pengarang, Published_year) VA

MySQL vs Pangkalan Data Lain: Membandingkan Pilihan MySQL vs Pangkalan Data Lain: Membandingkan Pilihan Apr 15, 2025 am 12:08 AM

MySQL sesuai untuk aplikasi web dan sistem pengurusan kandungan dan popular untuk sumber terbuka, prestasi tinggi dan kemudahan penggunaan. 1) Berbanding dengan PostgreSQL, MySQL melakukan lebih baik dalam pertanyaan mudah dan operasi membaca serentak yang tinggi. 2) Berbanding dengan Oracle, MySQL lebih popular di kalangan perusahaan kecil dan sederhana kerana sumber terbuka dan kos rendah. 3) Berbanding dengan Microsoft SQL Server, MySQL lebih sesuai untuk aplikasi silang platform. 4) Tidak seperti MongoDB, MySQL lebih sesuai untuk data berstruktur dan pemprosesan transaksi.

See all articles