"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्प्रिंग बूट के साथ डेटाबेस एकीकरण: सर्वोत्तम अभ्यास और उपकरण

स्प्रिंग बूट के साथ डेटाबेस एकीकरण: सर्वोत्तम अभ्यास और उपकरण

2024-07-30 को प्रकाशित
ब्राउज़ करें:951

Database Integration with Spring Boot : Best Practices and Tools

स्प्रिंग बूट एप्लिकेशन के साथ डेटाबेस को एकीकृत करना एक सामान्य कार्य है जो कई डेवलपर्स करते हैं। स्प्रिंग बूट, स्प्रिंग डेटा जेपीए के साथ मिलकर, MySQL जैसे रिलेशनल डेटाबेस के साथ काम करने के लिए एक मजबूत ढांचा प्रदान करता है। इसके अतिरिक्त, फ्लाईवे और लिक्विबेस जैसे उपकरण डेटाबेस माइग्रेशन को कुशलतापूर्वक प्रबंधित करने में मदद करते हैं। यह ब्लॉग रिलेशनल डेटाबेस के साथ स्प्रिंग डेटा जेपीए का उपयोग करने, MySQL के साथ एकीकृत करने और फ्लाईवे या लिक्विबेस के साथ डेटाबेस माइग्रेशन प्रबंधित करने के लिए सर्वोत्तम प्रथाओं को कवर करेगा।

रिलेशनल डेटाबेस के साथ स्प्रिंग डेटा जेपीए का उपयोग करना स्प्रिंग डेटा जेपीए बॉयलरप्लेट कोड की मात्रा को कम करके डेटा एक्सेस परतों के कार्यान्वयन को सरल बनाता है। यह विभिन्न डेटा स्टोरों के लिए एक शक्तिशाली रिपॉजिटरी एब्स्ट्रैक्शन प्रदान करता है, जिससे डेटाबेस इंटरैक्शन अधिक सरल हो जाता है

स्प्रिंग डेटा जेपीए का उपयोग करने के लिए सर्वोत्तम अभ्यास:

MySQL जैसे SQL डेटाबेस के साथ एकीकरण: MySQL सबसे लोकप्रिय रिलेशनल डेटाबेस में से एक है, और इसे स्प्रिंग बूट के साथ एकीकृत करना सीधा है।

MySQL को स्प्रिंग बूट के साथ एकीकृत करने के चरण:
निर्भरताएं जोड़ें: अपने pom.xml में स्प्रिंग डेटा जेपीए और MySQL कनेक्टर के लिए आवश्यक निर्भरताएं जोड़ें

org.springframework.boot स्प्रिंग-बूट-स्टार्टर-डेटा-jpa निर्भरता> mysql mysql-कनेक्टर-जावा निर्भरता>

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


डेटाबेस कॉन्फ़िगरेशन: डेटाबेस कनेक्शन विवरण को application.properties या application.yml में कॉन्फ़िगर करें

वसंत: डेटा स्रोत: यूआरएल: jdbc:mysql://localhost:3306/mydatabase उपयोक्तानाम: जड़ पासवर्ड: रूट पासवर्ड ड्राइवर-वर्ग-नाम: com.mysql.cj.jdbc.Driver जेपीए: शीतनिद्रा में होना: डीडीएल-ऑटो: अद्यतन शो-एसक्यूएल: सत्य

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


अपनी संस्थाओं को परिभाषित करें: अपनी जेपीए इकाइयों को परिभाषित करके प्रारंभ करें प्रत्येक इकाई डेटाबेस में एक तालिका का प्रतिनिधित्व करती है

@इकाई सार्वजनिक वर्ग उपयोगकर्ता { @पहचान @GeneratedValue(रणनीति = जनरेशनटाइप.पहचान) निजी लंबी आईडी; @कॉलम (शून्य = गलत) निजी स्ट्रिंग नाम; @कॉलम (अद्वितीय = सत्य, अशक्त = असत्य) निजी स्ट्रिंग ईमेल; // गेटर्स और सेटर्स }

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


रिपॉजिटरी बनाएं: सीआरयूडी संचालन करने के लिए रिपॉजिटरी इंटरफेस बनाएं। अंतर्निहित विधियों और कस्टम क्वेरी विधियों का लाभ उठाने के लिए JpaRepository का विस्तार करें

सार्वजनिक इंटरफ़ेस UserRepository JpaRepository का विस्तार करता है { वैकल्पिक ढूंढें ईमेल (स्ट्रिंग ईमेल); }

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


सेवा परत बनाएं: व्यावसायिक तर्क को समाहित करने और भंडार के साथ बातचीत करने के लिए एक सेवा परत का उपयोग करें

@सेवा सार्वजनिक वर्ग उपयोगकर्ता सेवा { @ऑटोवायर्ड निजी उपयोगकर्ता रिपोजिटरी उपयोगकर्ता रिपोजिटरी; // ऑपरेशन बनाएं सार्वजनिक उपयोगकर्ता createUser(उपयोगकर्ता उपयोगकर्ता) { // यदि आवश्यक हो तो सत्यापन या व्यावसायिक तर्क निष्पादित करें वापसी userRepository.save(user); } // संचालन पढ़ें सार्वजनिक वैकल्पिक findUserById(लंबी आईडी) { वापसी userRepository.findById(id); } सार्वजनिक वैकल्पिक findUserByEmail(स्ट्रिंग ईमेल) { वापसी userRepository.findByEmail(ईमेल); } सार्वजनिक सूची getAllUsers() { वापसी userRepository.findAll(); } // अद्यतन कार्रवाई सार्वजनिक उपयोगकर्ता अद्यतन उपयोगकर्ता (लंबी आईडी, उपयोगकर्ता उपयोगकर्ता विवरण) { // सुनिश्चित करें कि उपयोगकर्ता मौजूद है उपयोगकर्ता मौजूदा उपयोगकर्ता = userRepository.findById(id) .orElseThrow(() -> new resourceNotFoundException("उपयोगकर्ता आईडी के साथ नहीं मिला:" आईडी)); // उपयोगकर्ता विवरण अपडेट करें मौजूदाUser.setName(userDetails.getName()); मौजूदाUser.setEmail(userDetails.getEmail()); // अद्यतन उपयोगकर्ता सहेजें वापसी userRepository.save(मौजूदा उपयोगकर्ता); } // डिलीट ऑपरेशन सार्वजनिक शून्य डिलीट यूज़र (लंबी आईडी) { // सुनिश्चित करें कि उपयोगकर्ता मौजूद है उपयोगकर्ता मौजूदा उपयोगकर्ता = userRepository.findById(id) .orElseThrow(() -> new resourceNotFoundException("उपयोगकर्ता आईडी के साथ नहीं मिला:" आईडी)); // उपभोक्ता मिटायें userRepository.delete(मौजूदा उपयोगकर्ता); } }

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


एक्सेप्शन हेंडलिंग : updateUser और deleteUser तरीकों में, आप उन मामलों को संभालना चाह सकते हैं जहां निर्दिष्ट आईडी वाला उपयोगकर्ता मौजूद नहीं है। आप एक कस्टम अपवाद बना सकते हैं (जैसे, रिसोर्सनोटफाउंडएक्सेप्शन) और यदि आवश्यक हो तो इसे फेंक सकते हैं

@ResponseStatus(HttpStatus.NOT_FOUND) पब्लिक क्लास रिसोर्सनॉटफाउंडएक्सेप्शन रनटाइमएक्सेप्शन का विस्तार करता है { सार्वजनिक resourceNotFoundException(स्ट्रिंग संदेश) { सुपर(संदेश); } }

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


MySQL सर्वर चलाएँ: सुनिश्चित करें कि MySQL सर्वर चल रहा है, और निर्दिष्ट डेटाबेस (mydatabase) मौजूद है। आप MySQL CLI या MySQL वर्कबेंच जैसे GUI टूल का उपयोग करके डेटाबेस बना सकते हैं

कनेक्शन का परीक्षण करें: MySQL डेटाबेस से कनेक्शन सत्यापित करने के लिए अपना स्प्रिंग बूट एप्लिकेशन चलाएं। यदि सही ढंग से कॉन्फ़िगर किया गया है, तो स्प्रिंग बूट स्वचालित रूप से आपकी संस्थाओं के आधार पर आवश्यक तालिकाएँ बनाएगा

फ्लाईवे या लिक्विबेस के साथ डेटाबेस माइग्रेशन: आपके एप्लिकेशन की अखंडता और निरंतरता बनाए रखने के लिए डेटाबेस स्कीमा परिवर्तनों को प्रबंधित करना आवश्यक है। डेटाबेस माइग्रेशन को संभालने के लिए फ्लाईवे और लिक्विबेस दो लोकप्रिय उपकरण हैं।

डेटाबेस माइग्रेशन के लिए फ्लाईवे का उपयोग करना फ्लाईवे एक माइग्रेशन टूल है जो डेटाबेस वर्जनिंग को प्रबंधित करने के लिए SQL स्क्रिप्ट का उपयोग करता है

निर्भरताएं जोड़ें: अपने pom.xml में फ्लाईवे निर्भरताएं जोड़ें

org.flywaydb flyway-core निर्भरता>

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


फ्लाईवे कॉन्फ़िगर करें: एप्लिकेशन.प्रॉपर्टीज या एप्लिकेशन.yml में फ्लाईवे कॉन्फ़िगर करें

वसंत: हवाई रास्ता: सक्षम: सत्य स्थान: क्लासपाथ:डीबी/माइग्रेशन

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


माइग्रेशन स्क्रिप्ट बनाएं: अपनी SQL माइग्रेशन स्क्रिप्ट को src/main/resources/db/migration निर्देशिका में रखें। फ्लाईवे के नामकरण परंपरा के अनुसार स्क्रिप्ट को नाम दें (V1_Initial_Setup.sql, V2_Add_User_Table.sql, आदि)

-- V1__Initial_Setup.sql तालिका उपयोगकर्ता बनाएँ ( आईडी बिगिनट ऑटो_इंक्रीमेंट प्राथमिक कुंजी, नाम वर्चर(100) शून्य नहीं, ईमेल VARCHAR(100) पूर्ण अद्वितीय नहीं );

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


माइग्रेशन चलाएँ: फ्लाईवे स्वचालित रूप से एप्लिकेशन स्टार्टअप पर माइग्रेशन चलाएगा

डेटाबेस माइग्रेशन के लिए लिक्विबेस का उपयोग करना: लिक्विबेस डेटाबेस माइग्रेशन को प्रबंधित करने, XML, YAML, JSON और SQL प्रारूपों का समर्थन करने के लिए एक और शक्तिशाली उपकरण है।

निर्भरताएं जोड़ें: अपने pom.xml में लिक्विबेस निर्भरताएं जोड़ें

org.liquibase liquibase-core निर्भरता>

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


लिक्विबेस कॉन्फ़िगर करें: एप्लिकेशन.प्रॉपर्टीज या एप्लिकेशन.yml में लिक्विबेस कॉन्फ़िगर करें

वसंत: द्रव आधार: सक्षम: सत्य चेंज-लॉग: क्लासपाथ:db/changelog/db.changelog-master.yaml

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


चेंजलॉग फ़ाइलें बनाएं: अपने डेटाबेस परिवर्तनों को src/main/resources/db/changelog में परिभाषित करें। एक मास्टर चेंजलॉग फ़ाइल (db.changelog-master.yaml) बनाएं जिसमें अन्य चेंजलॉग फ़ाइलें शामिल हों

डेटाबेसचेंजलॉग: - परिवर्तन सेट: आईडी: 1 लेखक: आपका नाम परिवर्तन: - तालिका बनाएं: तालिका का नाम: उपयोगकर्ता कॉलम: - स्तंभ: नाम: आईडी प्रकार: बिगिनट स्वतः वृद्धि: सत्य प्रतिबंध: प्राथमिककुंजी: सत्य - स्तंभ: नाम नाम प्रकार: वर्चर(100) प्रतिबंध: निरर्थक: असत्य - स्तंभ: नाम: ईमेल प्रकार: वर्चर(100) प्रतिबंध: निरर्थक: असत्य अद्वितीय: सत्य

    org.springframework.boot
    spring-boot-starter-data-jpa


    mysql
    mysql-connector-java


माइग्रेशन चलाएँ: लिक्विबेस स्वचालित रूप से एप्लिकेशन स्टार्टअप पर माइग्रेशन चलाएगा

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/अभिषेक999/डेटाबेस-इंटीग्रेशन-साथ-स्प्रिंग-बूट-बेस्ट-प्रैक्टिस-एंड-टूल्स-5doh?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3