Kısıtlamaları uygulama

Java'da Veri Temizleme

Dennis Lee

Software Engineer

Veri için kalite kontrolü

  • Doğrulama ek açıklamaları: veride kalite kontrolü
  • Hatalar: eksik ülkeler, geçersiz tutarlar, negatif gönderilen kutular
  • Yazım hataları: 100 kutu yerine 1000 kutu

 

 

Satış Temsilcisi Ülke Ürün Tarih Tutar Gönderilen Kutu
James Rudeforth UK Mint Chip Choco 4-Oca-22 $5320 100
Van Tuxwell Hindistan %85 Bitter Bar 1-Ağu-22 $7896 94
Gigi Bohling ABD Fıstık Ezmeli Küpler 7-Tem-22 $4501 91
Java'da Veri Temizleme

Temel doğrulama ek açıklamaları

import jakarta.validation.constraints.NotNull;     // Boş alan kurallarını içe aktar
import jakarta.validation.constraints.Size;        // Dize uzunluğu kurallarını içe aktar

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


@NotNull(message = "Country cannot be empty") // Birden çok kural yığılabilir @Size(min = 2, max = 50) // Ülke adı uzunluğunu zorunlu kılar private String country;
@NotNull(message = "Product cannot be empty") private String product; }
Java'da Veri Temizleme

Sayısal kısıtlamalar

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
// İleti çıktıları sonra gösterilecek
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; }
Java'da Veri Temizleme

Kısıtlamaları uygulamak için içe aktarımlar

// Benzersiz doğrulama hatalarını depolar (tekrar yok)
import java.util.Set;
// Tek bir doğrulama hatasının ayrıntılarını tutar (alan, ileti, vb.)
import jakarta.validation.ConstraintViolation;
// Doğrulayıcı oluşturma giriş noktası
import jakarta.validation.Validation;
// Veriyi kurallara karşı kontrol eder
import jakarta.validation.Validator;
// Yapılandırılmış doğrulayıcılar oluşturur
import jakarta.validation.ValidatorFactory;
// Doğrulama başarısız olduğunda fırlatılır
import jakarta.validation.ConstraintViolationException;
Java'da Veri Temizleme

Doğrulayıcıyı uygulama

class SalesValidator {
    // Verimizi kontrol edecek araçları oluştur
    private static final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

// Satış kayıtlarını kontrol edecek bir doğrulayıcı al private static final Validator validator = factory.getValidator();
public static Set<ConstraintViolation<ChocolateSale>> validateSale(ChocolateSale sale) { // Satış kaydını kontrol et ve bulunan sorunları döndür return validator.validate(sale); } }
Java'da Veri Temizleme

Doğrulama sonuçlarını işleme

public class Main {
    public static void main(String[] args) {
        // Bazı geçersiz verilerle satış oluştur (ülke null, tutar negatif)
        ChocolateSale sale = new ChocolateSale("James Rudeforth", null, "Mint Chip Choco",
                LocalDate.parse("2022-01-04"), -5320.0, 1500);


// Doğrulama ihlallerini kontrol et Set<ConstraintViolation<ChocolateSale>> violations = SalesValidator.validateSale(sale); // Her doğrulama hata iletisini yazdır violations.forEach(violation -> System.out.println(violation.getMessage()));
// Herhangi bir ihlal bulunursa istisna fırlat if (!violations.isEmpty()) throw new ConstraintViolationException(violations); } }
Java'da Veri Temizleme

Doğrulama çıktısı

Ülke boş olamaz
Satış tutarı pozitif olmalıdır
1000 kutudan fazla gönderilemez

Exception in thread "main" jakarta.validation.ConstraintViolationException
Java'da Veri Temizleme

Doğrulama pahalı hataları önler

  • @NotNull, @Size, @Min ve @Max hataları erken yakalar
  • Doğrulamayı genel iş sorunlarına uygulayın
  • Pahalı veri hatalarına karşı ilk savunma hattı

Bir fabrikada elenen kakao çekirdekleri

Java'da Veri Temizleme

Hadi pratik yapalım!

Java'da Veri Temizleme

Preparing Video For Download...