Penerapan constraint

Pembersihan Data di Java

Dennis Lee

Software Engineer

Kontrol kualitas data

  • Anotasi validasi: kontrol kualitas data
  • Error: negara kosong, jumlah tidak valid, boks dikirim negatif
  • Salah ketik: 1000 boks alih-alih 100 boks

 

 

Salesperson Country Product Date Amount Boxes Shipped
James Rudeforth UK Mint Chip Choco 4-Jan-22 $5320 100
Van Tuxwell India 85% Dark Bars 1-Aug-22 $7896 94
Gigi Bohling US Peanut Butter Cubes 7-Jul-22 $4501 91
Pembersihan Data di Java

Anotasi validasi dasar

import jakarta.validation.constraints.NotNull;     // Impor aturan untuk field kosong
import jakarta.validation.constraints.Size;        // Impor aturan untuk panjang string

public class ChocolateSale {
    @NotNull(message = "Salesperson cannot be empty")
    private String salesperson;


@NotNull(message = "Country cannot be empty") // Beberapa aturan bisa ditumpuk @Size(min = 2, max = 50) // Menetapkan panjang nama negara private String country;
@NotNull(message = "Product cannot be empty") private String product; }
Pembersihan Data di Java

Kendala numerik

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
// Pesan keluaran akan ditunjukkan nanti
public class ChocolateSale {
    @Min(value = 0, message = "Sales amount must be positive")
    private Double amount;


@Min(value = 1, message = "Must ship at least 1 box") @Max(value = 1000, message = "Cannot ship more than 1000 boxes") private Integer boxesShipped; }
Pembersihan Data di Java

Impor untuk penerapan constraint

// Menyimpan error validasi unik (tanpa duplikat)
import java.util.Set;
// Detail satu error validasi (field, pesan, dll.)
import jakarta.validation.ConstraintViolation;
// Titik awal membuat validator
import jakarta.validation.Validation;
// Memeriksa data terhadap aturan
import jakarta.validation.Validator;
// Membuat validator terkonfigurasi
import jakarta.validation.ValidatorFactory;
// Dilempar saat validasi gagal
import jakarta.validation.ConstraintViolationException;
Pembersihan Data di Java

Menerapkan validator

class SalesValidator {
    // Buat alat untuk memeriksa data
    private static final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

// Dapatkan validator untuk memeriksa penjualan private static final Validator validator = factory.getValidator();
public static Set<ConstraintViolation<ChocolateSale>> validateSale(ChocolateSale sale) { // Periksa record penjualan dan kembalikan masalah yang ditemukan return validator.validate(sale); } }
Pembersihan Data di Java

Menangani hasil validasi

public class Main {
    public static void main(String[] args) {
        // Buat sale dengan data tidak valid (negara null, jumlah negatif)
        ChocolateSale sale = new ChocolateSale("James Rudeforth", null, "Mint Chip Choco",
                LocalDate.parse("2022-01-04"), -5320.0, 1500);


// Periksa pelanggaran validasi Set<ConstraintViolation<ChocolateSale>> violations = SalesValidator.validateSale(sale); // Cetak tiap pesan error validasi violations.forEach(violation -> System.out.println(violation.getMessage()));
// Jika ada pelanggaran, lempar exception if (!violations.isEmpty()) throw new ConstraintViolationException(violations); } }
Pembersihan Data di Java

Keluaran validasi

Country cannot be empty
Sales amount must be positive
Cannot ship more than 1000 boxes

Exception in thread "main" jakarta.validation.ConstraintViolationException
Pembersihan Data di Java

Validasi mencegah error mahal

  • @NotNull, @Size, @Min, dan @Max menangkap error lebih awal
  • Terapkan validasi pada masalah bisnis umum
  • Garis pertahanan pertama dari error data yang mahal

Biji kakao diayak di pabrik

Pembersihan Data di Java

Ayo berlatih!

Pembersihan Data di Java

Preparing Video For Download...