C++ पर डेटाबेस के साथ कार्य का परिचय
\n\nआधुनिक अनुप्रयोग शायद ही कभी डेटा भंडारण के बिना चलते हैं। C++ एक शक्तिशाली सिस्टम प्रोग्रामिंग भाषा है जो डेटाबेस के साथ काम करने वाली उच्च-लोड परियोजनाओं के लिए उपयुक्त है। इस लेख में, हम समझेंगे कि दो लोकप्रिय DBMS - रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB से कैसे जुड़ें और बुनियादी संचालन (CRUD) कैसे करें।
\n\nसामग्री शुरुआती लोगों के लिए है: आप जानेंगे कि किन लाइब्रेरीज़ की आवश्यकता है, उन्हें कैसे स्थापित करें, और तैयार कोड उदाहरण देखेंगे। पढ़ने के बाद, आप स्वतंत्र रूप से C++ को इनमें से किसी भी डेटाबेस के साथ एकीकृत कर सकेंगे।
\n\nC++ में PostgreSQL: रिलेशनल दृष्टिकोण
\n\nPostgreSQL सबसे विश्वसनीय ओपन-सोर्स रिलेशनल DBMS में से एक है। C++ से इसके साथ काम करने के लिए libpqxx लाइब्रेरी का उपयोग किया जाता है - यह C-लाइब्रेरी libpq पर एक आधिकारिक रैपर है।
\n\nlibpqxx की स्थापना
\n\nLinux (Ubuntu/Debian) पर, स्थापना एक कमांड से की जाती है:
\n\nsudo apt-get install libpqxx-dev\n\nWindows के लिए, आप vcpkg का उपयोग कर सकते हैं:
\n\nvcpkg 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\npqxx::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\ntxn.exec_params("INSERT INTO users (name, email) VALUES ($1, $2)",\n "अलेक्से", "alex@example.com");\n\nC++ में MongoDB: डॉक्यूमेंट-ओरिएंटेड दृष्टिकोण
\n\nMongoDB एक NoSQL डेटाबेस है जो डेटा को BSON (बाइनरी JSON) प्रारूप में संग्रहीत करता है। C++ के लिए एक आधिकारिक ड्राइवर mongocxx है।
\n\nmongocxx की स्थापना
\n\nLinux पर स्थापना (पहले MongoDB C Driver स्थापित करना आवश्यक है):
\n\nsudo 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निम्नलिखित कोड कनेक्शन को प्रदर्शित करता है