PreparedStatement के साथ पैरामीटराइज़्ड INSERT
SQL इंजेक्शन रोकने और प्रदर्शन में सुधार के लिए Java में PreparedStatement का उपयोग करें। प्लेसहोल्डर (?) के साथ SQL लिखें और सेटर मेथड्स से मान बांधें।
सिंटैक्स
String query = "INSERT INTO yourTableName(col1, col2, col3) VALUES (?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(query); pstmt.setXXX(1, value1); pstmt.setXXX(2, value2); pstmt.setXXX(3, value3); int rowsAffected = pstmt.executeUpdate();
MySQL टेबल बनाना
mysql> CREATE TABLE CourseDemo (
CourseId INT,
StudentName VARCHAR(20),
CourseName VARCHAR(30)
);
पूर्ण Java कोड
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;
public class InsertRecordInPreparedStatement {
static int cid;
static String studentName;
static String courseName;
public static void main(String[] args) {
String JdbcURL = "jdbc:mysql://localhost:3306/sample?useSSL=false";
String Username = "root";
String password = "123456";
Connection con = null;
PreparedStatement pstmt = null;
Scanner keyboardInput = new Scanner(System.in);
String query = "INSERT INTO CourseDemo(CourseId, StudentName, CourseName) VALUES (?, ?, ?)";
try {
con = DriverManager.getConnection(JdbcURL, Username, password);
input(keyboardInput);
pstmt = con.prepareStatement(query);
pstmt.setInt(1, cid);
pstmt.setString(2, studentName);
pstmt.setString(3, courseName);
int status = pstmt.executeUpdate();
if (status > 0) {
System.out.println("Record is inserted successfully !!!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try { if (pstmt != null) pstmt.close(); } catch (Exception e) {}
try { if (con != null) con.close(); } catch (Exception e) {}
}
}
public static void input(Scanner keyboardInput) {
System.out.println("Enter the course id:");
cid = keyboardInput.nextInt();
System.out.println("Enter the Student Name:");
studentName = keyboardInput.next();
System.out.println("Enter the Course Name:");
courseName = keyboardInput.next();
}
}
आउटपुट उदाहरण
Enter the course id: 101 Enter the Student Name: John Enter the Course Name: Java Record is inserted successfully !!!
MySQL में सत्यापन
mysql> SELECT * FROM CourseDemo;
+----------+-------------+------------+ | CourseId | StudentName | CourseName | +----------+-------------+------------+ | 101 | John | Java | +----------+-------------+------------+
कोड स्क्रीनशॉट

मुख्य बिंदु
PreparedStatementSQL इंजेक्शन रोकता है (मान एस्केप किए जाते हैं)।- समान कथन के बार-बार निष्पादन के लिए योजना कैशिंग के कारण तेज़।
- प्रकार-विशिष्ट सेटर:
setInt,setString,setDouble,setDate,setTimestamp,setNull, आदि। - पैरामीटर इंडेक्स 1-आधारित हैं।
- हमेशा
finallyया try-with-resources में संसाधन बंद करें।
Maven निर्भरता
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>