Java ব্যবহার করে MySQL ডেটাবেসে SQL ক্যোয়ারি লেখা এবং এক্সিকিউট করার জন্য JDBC (Java Database Connectivity) ব্যবহার করা হয়। JDBC এর মাধ্যমে আপনি SQL ক্যোয়ারি লেখার পর সেটি Statement বা PreparedStatement এর মাধ্যমে ডেটাবেসে এক্সিকিউট করতে পারেন। নিচে SQL ক্যোয়ারি লেখার এবং এক্সিকিউট করার বিস্তারিত উদাহরণ দেওয়া হলো।
1. SQL Query লেখা এবং Statement ব্যবহার করে Execute করা
SQL ক্যোয়ারি লেখার জন্য আপনি সাধারণত Statement অবজেক্ট ব্যবহার করতে পারেন। এটি সাধারণত সেই সময় ব্যবহৃত হয় যখন ক্যোয়ারি স্ট্যাটিক থাকে এবং পরবর্তীতে তার মান পরিবর্তন হয় না।
উদাহরণ:
import java.sql.*;
public class ExecuteQueryExample {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// ড্রাইভার লোড করা
Class.forName("com.mysql.cj.jdbc.Driver");
// ডেটাবেস সংযোগ স্থাপন
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/TestDB", "root", "password");
// SQL ক্যোয়ারি তৈরি
String sql = "SELECT * FROM Employees WHERE Age > 30";
// Statement তৈরি এবং ক্যোয়ারি এক্সিকিউট করা
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
// রেজাল্ট প্রসেস করা
while (rs.next()) {
int id = rs.getInt("ID");
String name = rs.getString("Name");
int age = rs.getInt("Age");
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
// সংযোগ বন্ধ করা
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
এই উদাহরণে:
Statementঅবজেক্ট ব্যবহার করে SQL ক্যোয়ারি তৈরি এবংexecuteQuery()মেথড দিয়ে ক্যোয়ারি এক্সিকিউট করা হয়েছে।ResultSetথেকে ডেটা রিট্রিভ করে প্রিন্ট করা হয়েছে।
2. PreparedStatement ব্যবহার করে SQL Query Execute করা
যখন আপনার SQL ক্যোয়ারি ডাইনামিক এবং পরিবর্তনশীল হয়, তখন PreparedStatement ব্যবহার করা উচিত। এটি নিরাপদ এবং কার্যক্ষমতাও বৃদ্ধি করে, বিশেষ করে যখন ব্যবহারকারী ইনপুট ডেটা সংশ্লিষ্ট ক্যোয়ারি প্রক্রিয়া করা হয়।
উদাহরণ:
import java.sql.*;
public class ExecutePreparedStatementExample {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// ড্রাইভার লোড করা
Class.forName("com.mysql.cj.jdbc.Driver");
// ডেটাবেস সংযোগ স্থাপন
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/TestDB", "root", "password");
// SQL ক্যোয়ারি তৈরি (PreparedStatement)
String sql = "SELECT * FROM Employees WHERE Age > ?";
pstmt = conn.prepareStatement(sql);
// ? এর জায়গায় মান সেট করা
pstmt.setInt(1, 30);
// ক্যোয়ারি এক্সিকিউট করা
rs = pstmt.executeQuery();
// রেজাল্ট প্রসেস করা
while (rs.next()) {
int id = rs.getInt("ID");
String name = rs.getString("Name");
int age = rs.getInt("Age");
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
// সংযোগ বন্ধ করা
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
এই উদাহরণে:
PreparedStatementব্যবহার করা হয়েছে যেখানে?দিয়ে প্লেসহোল্ডার দেওয়া হয়েছে এবং পরেsetInt()মেথড দিয়ে তার মান দেওয়া হয়েছে।executeQuery()মেথড ব্যবহার করে ক্যোয়ারি এক্সিকিউট করা হয়েছে এবং ফলাফলResultSetএ রিটার্ন করা হয়েছে।
3. UPDATE, DELETE, এবং INSERT Query Execute করা
UPDATE, DELETE এবং INSERT ক্যোয়ারি চালানোর জন্য executeUpdate() মেথড ব্যবহার করা হয়। এটি ডেটাবেসে কোনো পরিবর্তন আনবে, যেমন ডেটা ইনসার্ট, আপডেট বা ডিলিট।
উদাহরণ:
import java.sql.*;
public class ExecuteUpdateExample {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// ড্রাইভার লোড করা
Class.forName("com.mysql.cj.jdbc.Driver");
// ডেটাবেস সংযোগ স্থাপন
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/TestDB", "root", "password");
// SQL ক্যোয়ারি তৈরি (INSERT, UPDATE, DELETE)
String insertSQL = "INSERT INTO Employees (Name, Age, Address) VALUES ('James Bond', 40, '007 London')";
String updateSQL = "UPDATE Employees SET Age = 45 WHERE Name = 'James Bond'";
String deleteSQL = "DELETE FROM Employees WHERE Name = 'James Bond'";
// Statement তৈরি এবং ক্যোয়ারি এক্সিকিউট করা
stmt = conn.createStatement();
// Insert Query Execute
stmt.executeUpdate(insertSQL);
System.out.println("Data inserted successfully.");
// Update Query Execute
stmt.executeUpdate(updateSQL);
System.out.println("Data updated successfully.");
// Delete Query Execute
stmt.executeUpdate(deleteSQL);
System.out.println("Data deleted successfully.");
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
// সংযোগ বন্ধ করা
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
এই উদাহরণে:
- INSERT, UPDATE, এবং DELETE ক্যোয়ারি এক্সিকিউট করা হয়েছে।
executeUpdate()মেথড ব্যবহার করা হয়েছে যা ডেটাবেসে পরিবর্তন আনবে এবং প্রভাবিত রেকর্ডের সংখ্যা রিটার্ন করবে।
4. Batch Query Execute করা
একাধিক SQL ক্যোয়ারি একসাথে এক্সিকিউট করার জন্য Batch Processing ব্যবহার করা হয়। এটি ডেটাবেস অপারেশনগুলোর কর্মক্ষমতা উন্নত করতে সাহায্য করে।
উদাহরণ:
import java.sql.*;
public class BatchExecuteExample {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// ড্রাইভার লোড করা
Class.forName("com.mysql.cj.jdbc.Driver");
// ডেটাবেস সংযোগ স্থাপন
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/TestDB", "root", "password");
// Statement তৈরি
stmt = conn.createStatement();
// একাধিক ক্যোয়ারি যুক্ত করা
stmt.addBatch("INSERT INTO Employees (Name, Age, Address) VALUES ('Bruce Wayne', 30, 'Gotham')");
stmt.addBatch("INSERT INTO Employees (Name, Age, Address) VALUES ('Clark Kent', 33, 'Metropolis')");
stmt.addBatch("UPDATE Employees SET Age = 35 WHERE Name = 'Bruce Wayne'");
stmt.addBatch("DELETE FROM Employees WHERE Name = 'Clark Kent'");
// Batch execute করা
int[] result = stmt.executeBatch();
System.out.println("Batch execution completed.");
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
// সংযোগ বন্ধ করা
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
এই উদাহরণে:
- একাধিক SQL ক্যোয়ারি
addBatch()দিয়ে যোগ করা হয়েছে এবংexecuteBatch()ব্যবহার করে একসাথে কার্যকর করা হয়েছে।
সারাংশ
JDBC ব্যবহার করে Java অ্যাপ্লিকেশন থেকে MySQL ডেটাবেসে SQL ক্যোয়ারি লেখা এবং এক্সিকিউট করা সহজ। Statement এবং PreparedStatement ব্যবহার করে আপনি ক্যোয়ারি চালাতে পারেন। Statement সাধারণত স্ট্যাটিক ক্যোয়ারি জন্য ব্যবহার হয়, তবে PreparedStatement নিরাপদ
Read more