html
सामग्री तालिका
- परिचय
- Hibernate Entity Classes को समझना
- Entity Class सेटअप करना
- Hibernate में एनोटेशन का उपयोग करना
- Getters, Setters, और Constructors बनाना
- पूरा Entity Class उदाहरण
- निष्कर्ष
- अतिरिक्त संसाधन
परिचय
Java-आधारित अनुप्रयोगों के क्षेत्र में, Hibernate जैसे Object-Relational Mapping (ORM) फ्रेमवर्क ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और रिलेशनल डेटाबेस के बीच की खाई को पाटने में महत्वपूर्ण भूमिका निभाते हैं। Hibernate की कार्यक्षमता के मुख्य में Entity Classes की अवधारणा निहित है। ये क्लासेस Java ऑब्जेक्ट्स को डेटाबेस टेबल्स के साथ मैप करने में सहायक होती हैं, जिससे डेटा की सुचारू रूप से हेरफेर और पुनर्प्राप्ति सुनिश्चित होती है।
यह ईबुक Hibernate entity class सेटअप करने की पेचीदगियों में गहराई से उतरती है। चाहे आप Hibernate में नए हों या अपने ORM कौशल को परिष्कृत करने की तलाश में एक डेवलपर हों, यह गाइड एक व्यापक अवलोकन, चरण-दर-चरण निर्देश, और एंटिटी क्लास निर्माण में महारत हासिल करने के लिए सर्वोत्तम प्रथाओं प्रदान करती है।
Hibernate Entity Classes को समझना
Hibernate जटिल SQL क्वेरी लिखने के बजाय डेवलपर्स को Java ऑब्जेक्ट्स के साथ काम करने की अनुमति देकर डेटाबेस इंटरैक्शन को सरल बनाता है। इस अमूर्तता के केंद्र में Entity Classes हैं, जो डेटाबेस टेबल्स के लिए ब्लूप्रिंट के रूप में कार्य करती हैं। प्रत्येक entity class डेटाबेस में एक टेबल के अनुरूप होती है, और क्लास का प्रत्येक उदाहरण उस टेबल में एक पंक्ति का प्रतिनिधित्व करता है।
मुख्य बिंदु:
- ORM Framework: Hibernate Java ऑब्जेक्ट्स और डेटाबेस टेबल्स के बीच परिवर्तन को प्रबंधित करता है।
- Entity Class: एक Java क्लास जिसे डेटाबेस में एक टेबल का प्रतिनिधित्व करने के लिए एनोटेट किया जाता है।
- Primary Key: प्रत्येक entity में रिकॉर्ड को विशिष्ट रूप से पहचानने के लिए एक primary key होनी चाहिए।
Entity Class सेटअप करना
Hibernate entity class बनाने में कई महत्वपूर्ण चरण शामिल हैं, जैसे नामकरण नियमों से लेकर विशेषताओं को परिभाषित करना। आइए प्रत्येक घटक का विस्तार से अन्वेषण करें।
नामकरण नियम
सुसंगत नामकरण नियमों का पालन करना स्पष्टता सुनिश्चित करता है और भ्रम को कम करता है। आमतौर पर:
- Class Names: बड़े अक्षर से शुरू होते हैं और CamelCase का पालन करते हैं (जैसे, Users)।
- Property Names: छोटे अक्षरों का उपयोग करते हैं और आवश्यक होने पर शब्दों को अंडरस्कोर द्वारा अलग करते हैं (जैसे, user_id)।
उदाहरण:
1 2 3 4 5 |
public class Users { // Class body } |
क्लास की विशेषताओं को परिभाषित करना
Entity class में प्रत्येक property डेटाबेस टेबल में एक कॉलम के अनुरूप होती है। डेटा प्रकार और नामों को सटीक रूप से मिलाना आवश्यक है।
- Data Types: सुनिश्चित करें कि Java डेटा प्रकार SQL डेटा प्रकार से मेल खाता है (जैसे, नंबरिक IDs के लिए int, टेक्स्ट डेटा के लिए String)।
- Property Names: कोलम नामों को प्रतिबिंबित करना चाहिए, संभवतः पठनीयता के लिए अंडरस्कोर का उपयोग करते हुए।
उदाहरण:
1 2 3 4 5 6 7 |
private int user_id; private String username; private String password; private String first_name; private String last_name; |
Hibernate में एनोटेशन का उपयोग करना
Annotations Java का तरीका है क्लासेस, methods, और variables में metadata जोड़ने का। Hibernate में, एनोटेशन्स Java क्लासेस को डेटाबेस टेबल्स के साथ मैप करने में एक महत्वपूर्ण भूमिका निभाते हैं।
Entity एनोटेशन
@Entity एनोटेशन एक क्लास को Hibernate entity के रूप में चिह्नित करता है। यह दर्शाता है कि क्लास को डेटाबेस टेबल के साथ मैप किया गया है।
Syntax:
1 2 3 4 5 6 7 8 |
import javax.persistence.Entity; @Entity(name = "users") public class Users { // Class body } |
- name Attribute: entity नाम निर्दिष्ट करता है, जो logging और querying के लिए उपयोगी है।
Table एनोटेशन
@Table एनोटेशन डेटाबेस टेबल के बारे में अतिरिक्त जानकारी प्रदान करता है जिसे entity मैप करती है, जैसे कि टेबल का नाम।
Syntax:
1 2 3 4 5 6 7 8 9 |
import javax.persistence.Table; @Entity(name = "users") @Table(name = "users") public class Users { // Class body } |
- name Attribute: डेटाबेस में सटीक टेबल नाम निर्दिष्ट करता है, विशेष रूप से जब क्लास नाम और टेबल नाम अलग-अलग होते हैं तो स्पष्टता सुनिश्चित करता है।
Id और Column एनोटेशन
@Id एनोटेशन entity की primary key को निर्दिष्ट करता है, जबकि @Column एनोटेशन कॉलम के विवरण को निर्दिष्ट करता है।
Syntax:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import javax.persistence.Id; import javax.persistence.Column; @Id @Column(name = "user_id") private int user_id; @Column(name = "username") private String username; // Similarly for other properties |
- @Id: primary key को चिह्नित करता है।
- @Column: क्लास की प्रॉपर्टी को डेटाबेस टेबल में विशिष्ट कॉलम के साथ मैप करता है।
- Naming Differences: भले ही property नाम कॉलम नाम से अलग हों (जैसे, firstName बनाम first_name), @Column एनोटेशन सटीक मैपिंग सुनिश्चित करता है।
Getters, Setters, और Constructors बनाना
डेटा हेरफेर को सहज बनाने के लिए, entity क्लासेस में प्रत्येक property के लिए getter और setter मेथड्स होने चाहिए। इसके अतिरिक्त, constructors विशिष्ट property मूल्यों के साथ ऑब्जेक्ट इंस्टेंसेस बनाने में सक्षम बनाते हैं।
Getters और Setters
ये मेथड्स निजी क्लास प्रॉपर्टीज़ तक नियंत्रित पहुँच और संशोधन की अनुमति देते हैं।
उदाहरण:
1 2 3 4 5 6 7 8 9 10 11 |
public int getUser_id() { return user_id; } public void setUser_id(int user_id) { this.user_id = user_id; } // Similarly for other properties |
Constructors
Constructors entity क्लास के नए इंस्टेंसेस को प्रारंभ करते हैं। सामान्यतः, एक नो-आर्ग्युमेंट constructor और एक parameterized constructor उत्पन्न करना आम है, यदि primary key auto-generated है तो उसे छोड़कर।
उदाहरण:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Users() { // No-argument constructor } public Users(String username, String password, String first_name, String last_name) { this.username = username; this.password = password; this.first_name = first_name; this.last_name = last_name; } |
पूरा Entity Class उदाहरण
सभी चर्चा किए गए घटकों को एक साथ लाते हुए, यहां प्रदान किए गए transcript के आधार पर Hibernate entity class का एक पूरा उदाहरण है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
package org.studyeasy.entity; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Id; import javax.persistence.Column; @Entity(name = "users") @Table(name = "users") public class Users { @Id @Column(name = "user_id") private int user_id; @Column(name = "username") private String username; @Column(name = "password") private String password; @Column(name = "first_name") private String first_name; @Column(name = "last_name") private String last_name; // No-argument constructor public Users() { } // Parameterized constructor (excluding user_id) public Users(String username, String password, String first_name, String last_name) { this.username = username; this.password = password; this.first_name = first_name; this.last_name = last_name; } // Getter and Setter methods public int getUser_id() { return user_id; } public void setUser_id(int user_id) { this.user_id = user_id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFirst_name() { return first_name; } public void setFirst_name(String first_name) { this.first_name = first_name; } public String getLast_name() { return last_name; } public void setLast_name(String last_name) { this.last_name = last_name; } } |
कोड व्याख्या
- पैकेज घोषणा:
123package org.studyeasy.entity;Users क्लास के लिए namespace को परिभाषित करता है।
- इम्पोर्ट्स:
123456import javax.persistence.Entity;import javax.persistence.Table;import javax.persistence.Id;import javax.persistence.Column;Java Persistence API (JPA) से आवश्यक एनोटेशन्स को इम्पोर्ट करता है।
- Entity और Table एनोटेशन्स:
1234@Entity(name = "users")@Table(name = "users")- @Entity: क्लास को "users" नाम के साथ Hibernate entity के रूप में चिह्नित करता है।
- @Table: डेटाबेस में "users" नाम की टेबल निर्दिष्ट करता है जिसे यह entity मैप करती है।
- क्लास परिभाषा:
12345public class Users {// Class properties and methods}Users क्लास को परिभाषित करता है जो डेटाबेस में "users" टेबल का प्रतिनिधित्व करती है।
- एनोटेशन्स के साथ प्रॉपर्टी परिभाषाएँ:
1234567891011121314151617@Id@Column(name = "user_id")private int user_id;@Column(name = "username")private String username;@Column(name = "password")private String password;@Column(name = "first_name")private String first_name;@Column(name = "last_name")private String last_name;- प्रत्येक प्रॉपर्टी "users" टेबल में एक कॉलम के अनुरूप होती है।
- @Id: user_id को primary key के रूप में चिह्नित करता है।
- @Column: प्रॉपर्टी को टेबल में विशिष्ट कॉलम नाम के साथ मैप करता है।
- Constructors:
1234567891011public Users() {}public Users(String username, String password, String first_name, String last_name) {this.username = username;this.password = password;this.first_name = first_name;this.last_name = last_name;}नो-आर्ग्युमेंट constructor और parameterized constructor (auto-generated user_id को छोड़कर) प्रदान करता है।
- Getters और Setters:
12345public int getUser_id() { return user_id; }public void setUser_id(int user_id) { this.user_id = user_id; }// Similarly for other propertiesक्लास प्रॉपर्टीज़ तक नियंत्रित पहुँच की अनुमति देता है।
निष्कर्ष
एक सुव्यवस्थित Hibernate entity class बनाना Java अनुप्रयोगों में प्रभावी ORM के लिए बुनियादी है। नामकरण नियमों का पालन करके, एनोटेशन्स का उपयोग करके, और सटीक property मैपिंग सुनिश्चित कर के, डेवलपर्स Java ऑब्जेक्ट्स को रिलेशनल डेटाबेस के साथ सहजता से एकीकृत कर सकते हैं। इस ईबुक ने entity class सेटअप करने के लिए आवश्यक चरणों और सर्वोत्तम प्रथाओं को रेखांकित किया है, जिससे Hibernate की आगे की खोज और महारत के लिए एक मजबूत आधार प्रदान होता है।
यह लेख AI द्वारा जनित है।