जावा में डेटा सत्यापन: लाइब्रेरी और टूल्स का अवलोकन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा में डेटा सत्यापन: प्रमुख लाइब्रेरी और टूल्स का अवलोकन

\n\n

डेटा सत्यापन किसी भी एप्लिकेशन के विकास के सबसे महत्वपूर्ण चरणों में से एक है। सिस्टम में प्रवेश करने वाला गलत या दुर्भावनापूर्ण डेटा त्रुटियों, कमजोरियों और डेटा हानि का कारण बन सकता है। जावा में कई शक्तिशाली लाइब्रेरी हैं जो इस प्रक्रिया को स्वचालित और मानकीकृत करने में मदद करती हैं। इस लेख में, हम मुख्य सत्यापन टूल्स, उनकी विशेषताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।

\n\n

1. Jakarta Bean Validation (पूर्व में JSR 380 / Bean Validation 2.0)

\n\n

यह जावा ऑब्जेक्ट्स के सत्यापन के लिए डी-फैक्टो मानक है। यह एनोटेशन का एक सेट परिभाषित करता है जिसे फ़ील्ड, विधियों और क्लास पर रखा जा सकता है। सबसे लोकप्रिय कार्यान्वयन Hibernate Validator है।

\n\n

मुख्य एनोटेशन:

\n
    \n
  • @NotNull — जाँचता है कि मान null नहीं है।
  • \n
  • @NotEmpty — स्ट्रिंग, कलेक्शन या ऐरे के लिए: null नहीं और खाली नहीं।
  • \n
  • @NotBlank — स्ट्रिंग null नहीं है और इसमें कम से कम एक गैर-रिक्त वर्ण है।
  • \n
  • @Size(min, max) — स्ट्रिंग की लंबाई या कलेक्शन के आकार को सीमित करता है।
  • \n
  • @Min / @Max — संख्यात्मक सीमाएँ।
  • \n
  • @Pattern(regexp) — रेगुलर एक्सप्रेशन द्वारा जाँच।
  • \n
  • @Email — ईमेल प्रारूप की जाँच।
  • \n
\n\n

उपयोग का उदाहरण:

\n
import jakarta.validation.constraints.*;\n\npublic class User {\n    @NotBlank(message = "नाम खाली नहीं हो सकता")\n    private String name;\n\n    @Email(message = "गलत ईमेल")\n    @NotBlank\n    private String email;\n\n    @Min(18) @Max(120)\n    private int age;\n\n    // गेटर्स और सेटर्स\n}
\n\n

सत्यापन कैसे करें:

\n
import jakarta.validation.*;\nimport java.util.Set;\n\npublic class ValidationExample {\n    public static void main(String[] args) {\n        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\n        Validator validator = factory.getValidator();\n\n        User user = new User();\n        user.setName(""); // खाली नाम\n        user.setEmail("invalid");\n        user.setAge(150);\n\n        Set<ConstraintViolation<User>> violations = validator.validate(user);\n        for (ConstraintViolation<User> v : violations) {\n            System.out.println(v.getPropertyPath() + ": " + v.getMessage());\n        }\n    }\n}
\n\n

लाभ: मानकीकृत दृष्टिकोण, Spring और Jakarta EE के साथ एकीकरण, कस्टम एनोटेशन के लिए समर्थन।

\n\n

2. Apache Commons Validator

\n\n

Apache की लाइब्रेरी, जो सामान्य डेटा प्रकारों जैसे ईमेल, URL, क्रेडिट कार्ड, IP पते आदि के लिए तैयार वैलिडेटर का एक सेट प्रदान करती है। Bean Validation के विपरीत, यहाँ कोई एनोटेशन नहीं है - सत्यापन स्थैतिक विधियों को कॉल करके होता है।

\n\n

उदाहरण:

\n
import org.apache.commons.validator.routines.*;\n\npublic class CommonsValidatorExample {\n    public static void main(String[] args) {\n        EmailValidator emailValidator = EmailValidator.getInstance();\n        System.out.println(emailValidator.isValid("test@example.com")); // true\n\n        UrlValidator urlValidator = new UrlValidator();\n        System.out.println(urlValidator.isValid("https://pythonlib.ru")); // true\n\n        CreditCardValidator ccValidator = CreditCardValidator.getInstance();\n        System.out.println(ccValidator.isValid("4111111111111111")); // true (Visa)\n    }\n}
\n\n

लाभ: सरल एकीकरण, कॉन्फ़िगरेशन की आवश्यकता नहीं, एकल जाँच के लिए उपयुक्त।

\n\n

3. OVal (Object Validation Framework)

\n\n

लचीली लाइब्रेरी, जो एनोटेशन और प्रोग्रामेटिक कॉन्फ़िगरेशन दोनों का समर्थन करती है। यह क्रॉस-फ़ील्ड और निर्भरताओं सहित जटिल सत्यापन नियमों को सेट करने की अनुमति देती है।

\n\n

एनोटेशन के साथ उदाहरण:

\n
import net.sf.oval.constraint.*;\n\npublic class Order {\n    @NotNull\n                    

अनुशंसाएँ