परिचय: Java डेवलपर को PostgreSQL और MongoDB क्यों जानना चाहिए?
\nआधुनिक Java-डेवलपमेंट शायद ही कभी डेटाबेस के साथ बातचीत के बिना होता है। दो सबसे लोकप्रिय सिस्टम - रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB - एंटरप्राइज़ एप्लिकेशन के 90% कार्यों को कवर करते हैं। PostgreSQL सख्त स्कीमा और ट्रांज़ैक्शनल सिस्टम के लिए आदर्श है, जबकि MongoDB लचीली डेटा संरचनाओं और उच्च राइट लोड के लिए उपयुक्त है।
\nइस लेख में, हम Java से दोनों DB के व्यावहारिक कनेक्शन उदाहरणों का विश्लेषण करेंगे, बुनियादी CRUD-संचालन करेंगे और दृष्टिकोणों की तुलना करेंगे। यह सामग्री शुरुआती और अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगी जो अपने ज्ञान को ताज़ा करना चाहते हैं।
\n\n1. Java में PostgreSQL: रिलेशनल डेटाबेस का क्लासिक
\n1.1. कनेक्शन और कॉन्फ़िगरेशन
\nJava में PostgreSQL के साथ काम करने के लिए ड्राइवर org.postgresql:postgresql का उपयोग किया जाता है। pom.xml (Maven) में निर्भरता जोड़ें:
<dependency>\n <groupId>org.postgresql</groupId>\n <artifactId>postgresql</artifactId>\n <version>42.7.1</version>\n</dependency>\nJDBC के माध्यम से कनेक्शन इस प्रकार दिखता है:
\nString url = "jdbc:postgresql://localhost:5432/mydb";\nString user = "postgres";\nString password = "secret";\n\ntry (Connection conn = DriverManager.getConnection(url, user, password)) {\n System.out.println("PostgreSQL से कनेक्शन स्थापित!");\n} catch (SQLException e) {\n e.printStackTrace();\n}\n\n1.2. व्यवहार में CRUD-संचालन
\nहम एक users तालिका बनाएंगे और बुनियादी संचालन करेंगे:
// तालिका बनाना\nString createSQL = """\n CREATE TABLE IF NOT EXISTS users (\n id SERIAL PRIMARY KEY,\n name VARCHAR(100),\n email VARCHAR(100) UNIQUE,\n age INTEGER\n )\n""";\n\ntry (Statement stmt = conn.createStatement()) {\n stmt.execute(createSQL);\n System.out.println("तालिका बनाई गई");\n}\n\n// INSERT\nString insertSQL = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";\ntry (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) {\n pstmt.setString(1, "इवान पेत्रोव");\n pstmt.setString(2, "ivan@example.com");\n pstmt.setInt(3, 30);\n pstmt.executeUpdate();\n}\n\n// SELECT\nString selectSQL = "SELECT * FROM users WHERE age > ?";\ntry (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {\n pstmt.setInt(1, 25);\n ResultSet rs = pstmt.executeQuery();\n while (rs.next()) {\n System.out.printf("ID: %d, Name: %s, Email: %s%n",\n rs.getInt("id"),\n rs.getString("name"),\n rs.getString("email"));\n }\n}\nमहत्वपूर्ण: SQL-इंजेक्शन से बचाव के लिए हमेशा PreparedStatement का उपयोग करें।
2. Java में MongoDB: डॉक्यूमेंट मॉडल की लचीलापन
\n2.1. MongoDB Sync Driver के माध्यम से कनेक्शन
\npom.xml में जोड़ें:
<dependency>\n <groupId>org.mongodb</groupId>\n <artifactId>mongodb-driver-sync</artifactId>\n <version>4.11.1</version>\n</dependency>\nस्थानीय MongoDB से कनेक्शन:
\nimport com.mongodb.client.MongoClients;\nimport com.mongodb.client.MongoClient;\nimport com.mongodb.client.MongoDatabase;\n\nMongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");\nMongoDatabase database = mongoClient.getDatabase("mydb");\nSystem.out.println("MongoDB से कनेक्शन स्थापित");\n\n2.2. डॉक्यूमेंट के साथ CRUD-संचालन
\nusers संग्रह के साथ कार्य करें:
import com.mongodb.client.MongoCollection;\nimport org.bson.Document;\nimport static com.mongodb.client.model.Filters.*;\n\nMongoCollection<Document> collection = database.getCollection("users");\n\n// CREATE — डॉक्यूमेंट सम्मिलित करना\nDocument user = new Document("name", "अन्ना स्मि