C++ में डेटाबेस के साथ कार्य: शुरुआती लोगों के लिए PostgreSQL और MongoDB

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

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

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

C++ पर डेटाबेस के साथ कार्य का परिचय

\n\n

आधुनिक अनुप्रयोग शायद ही कभी डेटा भंडारण के बिना चलते हैं। C++ एक शक्तिशाली सिस्टम प्रोग्रामिंग भाषा है जो डेटाबेस के साथ काम करने वाली उच्च-लोड परियोजनाओं के लिए उपयुक्त है। इस लेख में, हम समझेंगे कि दो लोकप्रिय DBMS - रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB से कैसे जुड़ें और बुनियादी संचालन (CRUD) कैसे करें।

\n\n

सामग्री शुरुआती लोगों के लिए है: आप जानेंगे कि किन लाइब्रेरीज़ की आवश्यकता है, उन्हें कैसे स्थापित करें, और तैयार कोड उदाहरण देखेंगे। पढ़ने के बाद, आप स्वतंत्र रूप से C++ को इनमें से किसी भी डेटाबेस के साथ एकीकृत कर सकेंगे।

\n\n

C++ में PostgreSQL: रिलेशनल दृष्टिकोण

\n\n

PostgreSQL सबसे विश्वसनीय ओपन-सोर्स रिलेशनल DBMS में से एक है। C++ से इसके साथ काम करने के लिए libpqxx लाइब्रेरी का उपयोग किया जाता है - यह C-लाइब्रेरी libpq पर एक आधिकारिक रैपर है।

\n\n

libpqxx की स्थापना

\n\n

Linux (Ubuntu/Debian) पर, स्थापना एक कमांड से की जाती है:

\n\n
sudo apt-get install libpqxx-dev
\n\n

Windows के लिए, आप vcpkg का उपयोग कर सकते हैं:

\n\n
vcpkg install libpqxx
\n\n

कनेक्शन और क्वेरी निष्पादन

\n\n

सबसे सरल उदाहरण पर विचार करें: डेटाबेस से कनेक्शन, तालिका बनाना और डेटा सम्मिलित करना।

\n\n
#include <iostream>\n#include <pqxx/pqxx>\n\nint main() {\n    try {\n        // DB से कनेक्शन (अपने पैरामीटर से बदलें)\n        pqxx::connection conn("dbname=testdb user=postgres password=secret hostaddr=127.0.0.1 port=5432");\n        \n        if (conn.is_open()) {\n            std::cout << "PostgreSQL से कनेक्शन सफल!" << std::endl;\n        }\n\n        // ट्रांज़ैक्शन बनाना\n        pqxx::work txn(conn);\n\n        // तालिका बनाना\n        txn.exec("CREATE TABLE IF NOT EXISTS users ("\n                 "id SERIAL PRIMARY KEY, "\n                 "name VARCHAR(100) NOT NULL, "\n                 "email VARCHAR(100) UNIQUE NOT NULL)");\n\n        // डेटा सम्मिलित करना\n        txn.exec("INSERT INTO users (name, email) VALUES "\n                 "('इवान पेत्रोव', 'ivan@example.com'), "\n                 "('मारिया स्मिर्नोवा', 'maria@example.com')");\n\n        // ट्रांज़ैक्शन को अंतिम रूप देना\n        txn.commit();\n        std::cout << "डेटा सफलतापूर्वक जोड़ा गया!" << std::endl;\n\n    } catch (const std::exception &e) {\n        std::cerr << "त्रुटि: " << e.what() << std::endl;\n        return 1;\n    }\n    return 0;\n}
\n\n

डेटा पढ़ना (SELECT)

\n\n

डेटा प्राप्त करने के लिए, परिणाम इटरेटर का उपयोग करें:

\n\n
pqxx::work txn(conn);\npqxx::result result = txn.exec("SELECT id, name, email FROM users");\n\nfor (const auto &row : result) {\n    int id = row["id"].as<int>();\n    std::string name = row["name"].as<std::string>();\n    std::string email = row["email"].as<std::string>();\n    std::cout << id << " | " << name << " | " << email << std::endl;\n}
\n\n

महत्वपूर्ण: SQL इंजेक्शन से बचाव के लिए हमेशा पैरामीटराइज़्ड क्वेरी का उपयोग करें:

\n\n
txn.exec_params("INSERT INTO users (name, email) VALUES ($1, $2)",\n                "अलेक्से", "alex@example.com");
\n\n

C++ में MongoDB: डॉक्यूमेंट-ओरिएंटेड दृष्टिकोण

\n\n

MongoDB एक NoSQL डेटाबेस है जो डेटा को BSON (बाइनरी JSON) प्रारूप में संग्रहीत करता है। C++ के लिए एक आधिकारिक ड्राइवर mongocxx है।

\n\n

mongocxx की स्थापना

\n\n

Linux पर स्थापना (पहले MongoDB C Driver स्थापित करना आवश्यक है):

\n\n
sudo apt-get install libmongoc-dev libbson-dev\ngit clone https://github.com/mongodb/mongo-cxx-driver.git\ncd mongo-cxx-driver\nmkdir build && cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release -DBSONCXX_POLY_USE_MNMLSTC=ON\nmake -j4\nsudo make install
\n\n

कनेक्शन और CRUD-संचालन

\n\n

निम्नलिखित कोड कनेक्शन को प्रदर्शित करता है

ब्लॉग

पुस्तक अनुशंसाएँ