चरण 3 – डेटा पर्सिस्टेंस और स्ट्रीम्स (2-3 महीने)
मूल SQL
- DDL:
CREATE,ALTER. - DML:
SELECT,INSERT,UPDATE,DELETE. - Joins:
INNER,LEFT,RIGHT. - Keys: प्राइमरी और फॉरेन कीज़।
- नॉर्मलाइजेशन: 1NF, 2NF, 3NF।
- उदाहरण: प्रोडक्ट्स और कैटेगरीज के लिए टेबल बनाना।
JDBC और Connection Pool
- Classes:
Connection,Statement,PreparedStatement,ResultSet. - Connection Pool (HikariCP) का उपयोग।
- सर्वोत्तम अभ्यास:
try-with-resources,SQLExceptionका प्रबंधन।
Hibernate + JPA व्यवहार में
- Annotations:
@Entity,@Id,@ManyToOne,@OneToMany. - कॉन्फ़िगरेशन:
persistence.xmlयाapplication.properties. EntityManagerके साथ CRUD ऑपरेशन्स।- Flyway या Liquibase के साथ डेटाबेस माइग्रेशन्स का परिचय।
NoSQL डेटाबेस का परिचय
- अवधारणाएँ: दस्तावेज़, कलेक्शन्स, हॉरिजॉन्टल स्केलेबिलिटी।
- MongoDB: सेटअप, MongoRepository के साथ CRUD ऑपरेशन्स।
- Spring Data MongoDB: Spring Boot के साथ एकीकरण।
- उदाहरण: MongoDB में प्रोडक्ट्स के लिए सिस्टम गतिविधि लॉग्स स्टोर करना।
स्ट्रीम्स और लैम्ब्डा एक्सप्रेशन्स
- ऑपरेशन्स:
filter,map,sorted,collect,forEach,reduce. - उदाहरण: कीमत के आधार पर प्रोडक्ट्स को फ़िल्टर करना, नाम के आधार पर सॉर्ट करना।
Optional और Functional Interfaces
Optional:orElse,ifPresent,orElseThrow.- Functional Interfaces:
Function,Predicate,Consumer. - उदाहरण: स्ट्रीम्स में डेटा फ़िल्टर करने के लिए
Predicateका उपयोग।
उन्नत कलेक्शन्स
- LinkedList: कुशलतापूर्वक जोड़ना/हटाना।
- TreeMap: क्रमबद्ध key-value जोड़े।
- PriorityQueue: प्रायोरिटी क्यू।
- LinkedHashMap और Deque (परिचय)।
लॉगिंग (SLF4J/Logback)
- SLF4J के साथ Logback का कॉन्फ़िगरेशन।
- लेवल्स:
INFO,DEBUG,ERROR. - उदाहरण: Hibernate क्वेरीज़ को लॉग करना।
ट्रांजेक्शन अवधारणाएँ (ACID)
- परमाणुकता, संगतता, अलगाव, स्थायित्व।
- JDBC (
commit,rollback) और Hibernate (@Transactional) के साथ ट्रांजेक्शन्स।
इंडेक्स और एक्जीक्यूशन प्लान्स
- Indexes: प्राइमरी, यूनिक, कम्पोजिट।
- क्वेरीज़ को अनुकूलित करने के लिए EXPLAIN का उपयोग।
- उदाहरण: बार-बार खोजी जाने वाली कॉलम पर इंडेक्स बनाना।
फाइल मैनिपुलेशन (वैकल्पिक)
Files,BufferedReaderके साथ पढ़ना और लिखना।- उदाहरण: स्ट्रीम्स का उपयोग करके CSV में प्रोडक्ट रिपोर्ट निर्यात करना।
डेटाबेस टेस्टिंग (परिचय)
- H2 और JUnit के साथ इंटीग्रेशन टेस्ट्स।
- उदाहरण: Hibernate के साथ CRUD ऑपरेशन्स का टेस्ट करना।
अंतिम प्रोजेक्ट
प्रोडक्ट मैनेजमेंट सिस्टम
- डेटाबेस: Product और Category टेबल्स (1:N संबंध)।
- Java: JPA (Product, Category) के साथ क्लासेस, Hibernate के साथ CRUD।
- वैकल्पिक: MongoDB में प्रोडक्ट परिवर्तन लॉग्स स्टोर करना।
- वैकल्पिक: MongoDB में डायनामिक प्रोडक्ट विशेषताएँ (उदाहरण के लिए, तकनीकी विनिर्देश) स्टोर करना।
- स्ट्रीम्स: प्रोडक्ट्स को फ़िल्टर/सॉर्ट करना (उदाहरण के लिए, कीमत या कैटेगरी के आधार पर)।
- लॉगिंग: डेटाबेस ऑपरेशन्स की निगरानी।
- Git: प्रत्येक फीचर के लिए commit (उदाहरण के लिए, feature/crud, feature/streams)।
- GitHub पर प्रकाशन के साथ व्याख्यात्मक README।