Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

JDBC के साथ MySQL में बैकस्लैश को कैसे एस्केप करें?

MySQL में JDBC का उपयोग करते समय बैकस्लैश (`\`) जैसे विशेष वर्णों को संभालने का सबसे सुरक्षित और अनुशंसित तरीका **PreparedStatement** का उपयोग करना है। यह SQL इंजेक्शन को रोकता है और स्वचालित रूप से एस्केप सीक्वेंस को सही ढंग से संभालता है।

उदाहरण: PreparedStatement के साथ बैकस्लैश हैंडलिंग

सबसे पहले एक डेमो टेबल बनाएं:

mysql> CREATE TABLE DemoTable1904 (
    ClientId INT,
    ClientName VARCHAR(20),
    ClientAge INT
);

Java कोड में PreparedStatement का उपयोग करें:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class EscapeBackslashesDemo {
    public static void main(String[] args) {
        Connection con = null;
        PreparedStatement ps = null;
        try {
            con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/web?useSSL=false", 
                "root", "123456"
            );
            String query = "INSERT INTO DemoTable1904(ClientId, ClientName, ClientAge) VALUES (?, ?, ?)";
            ps = con.prepareStatement(query);
            ps.setInt(1, 1001);
            ps.setString(2, "David Miller"); // बैकस्लैश वाले स्ट्रिंग भी सुरक्षित हैं
            ps.setInt(3, 35);
            ps.executeUpdate();
            System.out.println("One row is inserted.....");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

टेबल रिकॉर्ड चेक करें:

mysql> SELECT * FROM DemoTable1904;
+----------+--------------+-----------+
| ClientId | ClientName   | ClientAge |
+----------+--------------+-----------+
| 1001     | David Miller | 35        |
+----------+--------------+-----------+

PreparedStatement क्यों बेहतर है?

  • स्वचालित एस्केपिंग: JDBC ड्राइवर स्वचालित रूप से विशेष वर्णों को एस्केप करता है।
  • SQL इंजेक्शन सुरक्षा: पैरामीटराइज़्ड क्वेरी इंजेक्शन अटैक को रोकती हैं।
  • पढ़ने योग्य कोड: क्वेरी और डेटा अलग-अलग रहते हैं।
  • पुन: उपयोग योग्य: एक ही स्टेटमेंट को अलग-अलग पैरामीटर्स के साथ कई बार एक्ज़ीक्यूट कर सकते हैं।

नोट: यदि आप बैकस्लैश वाले स्ट्रिंग लिटरल डाल रहे हैं (जैसे `C:\Users\Name`), तो Java स्ट्रिंग में डबल बैकस्लैश (`\\`) लिखें या PreparedStatement के `setString()` का उपयोग करें जो इसे स्वचालित रूप से संभालता है।

  1. Java से MySQL डेटाबेस में डेटा कैसे अपडेट करें? Java से MySQL डेटाबेस में डेटा कैसे अपडेट करें?

    JDBC का उपयोग करके MySQL में रिकॉर्ड अपडेट करें Java से MySQL डेटाबेस में डेटा अपडेट करने के लिए, आप JDBC (Java Database Connectivity) API के साथ SQL UPDATE कथन का उपयोग करते हैं। SQL सिंटैक्स UPDATE टेबल_नाम SET कॉलम1 = मान1, कॉलम2 = मान2, ... WHERE शर्त; पूर्ण Java उदाहरण 1. डेटाबेस तैयारी IN

  1. Java से MySQL डेटाबेस में डेटा कैसे डिलीट करें? Java से MySQL डेटाबेस में डेटा कैसे डिलीट करें?

    JDBC का उपयोग करके MySQL से रिकॉर्ड डिलीट करें Java से MySQL में डेटा डिलीट करने के लिए, आप JDBC के साथ SQL DELETE कथन का उपयोग करते हैं। SQL सिंटैक्स DELETE FROM टेबल_नाम WHERE शर्त; पूर्ण Java उदाहरण 1. डेटाबेस तैयारी INSERT INTO DeleteTableDemo VALUES(101, Smith), (102, Johnson); 2. Java को

  1. PHP और MySQL में  बूलियन  मानों को कैसे संभालें? PHP और MySQL में 'बूलियन' मानों को कैसे संभालें?

    MySQL में बूलियन डेटा प्रकार समझना MySQL 8.0.12 में बूलियन मानों को संभालने के लिए आप BOOL, BOOLEAN या TINYINT(1) का उपयोग कर सकते हैं। जब आप BOOL या BOOLEAN का उपयोग करते हैं, तो MySQL आंतरिक रूप से इसे TINYINT(1) में परिवर्तित कर देता है। बूलियन लिटरल का प्रतिनिधित्व BOOL या BOOLEAN डेटा प्रकार