C++ में डेटाबेस के साथ कार्य: PostgreSQL और MongoDB

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

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

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

परिचय: C++ में डेटाबेस क्यों जोड़ें



आधुनिक C++ एप्लिकेशन शायद ही कभी स्थायी डेटा भंडारण के बिना चलते हैं। चाहे वह गेम सर्वर हो, टेलीमेट्री सिस्टम हो या उच्च-लोड वाला बैकएंड — आपको DBMS के साथ इंटरैक्शन की आवश्यकता होगी। बाजार में दो मौलिक रूप से भिन्न दृष्टिकोण हावी हैं: रिलेशनल (SQL) और डॉक्यूमेंट-ओरिएंटेड (NoSQL) डेटाबेस।



इस लेख में, हम सीखेंगे कि PostgreSQL (libpqxx लाइब्रेरी के माध्यम से) और MongoDB (आधिकारिक C++ ड्राइवर mongo-cxx-driver के माध्यम से) के साथ कैसे काम करें। आप जानेंगे कि कनेक्शन कैसे सेट करें, CRUD-ऑपरेशन कैसे करें और त्रुटियों को कैसे संभालें।



1. PostgreSQL और C++: रिलेशनल दृष्टिकोण



PostgreSQL एक शक्तिशाली ऑब्जेक्ट-रिलेशनल DBMS है जिसमें ट्रांजेक्शन और जटिल क्वेरी के लिए उत्कृष्ट समर्थन है। C++ के लिए, libpqxx लाइब्रेरी का उपयोग करने की अनुशंसा की जाती है — libpq पर एक आधुनिक, टाइप-सेफ रैपर।



1.1 libpqxx की स्थापना

स्थापना आपके OS पर निर्भर करती है:

  • Ubuntu/Debian: sudo apt install libpqxx-dev
  • macOS (Homebrew): brew install libpqxx
  • Windows (vcpkg): vcpkg install libpqxx


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

DB से कनेक्ट करने, टेबल बनाने और डेटा डालने के लिए एक न्यूनतम प्रोग्राम देखें:



#include <iostream>#include <pqxx/pqxx>

int main() { try { // डेटाबेस से कनेक्शन pqxx::connection conn("dbname=testdb user=postgres password=secret hostaddr=127.0.0.1 port=5432"); if (conn.is_open()) { std::cout << "Connected to PostgreSQL: " << conn.dbname() << std::endl; }

// ट्रांजेक्शन बनाना pqxx::work txn(conn);

// टेबल बनाना txn.exec("CREATE TABLE IF NOT EXISTS users (" "id SERIAL PRIMARY KEY," "name VARCHAR(100) NOT NULL," "email VARCHAR(255) UNIQUE NOT NULL" ");");

// डेटा डालना (सुरक्षा के लिए पैरामीटराइजेशन के साथ) txn.exec_params("INSERT INTO users (name, email) VALUES ($1, $2);", "Alice", "alice@example.com");

// ट्रांजेक्शन की पुष्टि txn.commit();

std::cout << "Data inserted successfully." << std::endl;

} catch (const std::exception &e) { std::cerr << "Error: " << e.what() << std::endl; return 1; } return 0;}


1.3 डेटा पढ़ना

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



pqxx::work txn(conn);pqxx::result result = txn.exec("SELECT id, name, email FROM users;");

for (auto row : result) { int id = row["id"].as<int>(); std::string name = row["name"].as<std::string>(); std::string email = row["email"].as<std::string>(); std::cout << id << ": " << name << " <" << email << ">" << std::endl;}


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



MongoDB डेटा को BSON (बाइनरी JSON) प्रारूप में संग्रहीत करता है। C++ के लिए, आधिकारिक ड्राइवर mongo-cxx-driver का उपयोग किया जाता है, जो libmongoc लाइब्रेरी पर आधारित है।



2.1 mongo-cxx-driver की स्थापना

  • Ubuntu: sudo apt install libmongoc-1.0-0 libbson-1.0-0 libmongocxx-dev
  • macOS: brew install mongo-cxx-driver
  • स्रोत से निर्माण: cmake, libmongoc और libbson की आवश्यकता है।


2.2 कनेक्शन और CRUD-ऑपरेशन

स्थानीय MongoDB इंस्टेंस से कनेक्ट करने और एक दस्तावेज़ डालने का उदाहरण:



#include <iostream>#include <bsoncxx/b                

ब्लॉग

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