কম্পিউটার টিউটোরিয়াল

Java-এ MySQL PreparedStatement দিয়ে SELECT কোয়েরি চালানো

PreparedStatement-এ SELECT কোয়েরি চালানোর জন্য executeQuery() মেথড ব্যবহার করতে হয়।

সিনট্যাক্স

yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);
yourResultSetObject = yourPreparedStatementObject.executeQuery();

ডাটাবেসে টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE JavaPreparedStatement (
    -> Id INT,
    -> Name VARCHAR(10),
    -> Age INT
    -> );
Query OK, 0 rows affected (0.89 sec)

mysql> INSERT INTO JavaPreparedStatement VALUES(1, 'Larry', 23);
mysql> INSERT INTO JavaPreparedStatement VALUES(2, 'Sam', 25);
mysql> INSERT INTO JavaPreparedStatement VALUES(3, 'Mike', 26);

জাভা কোড উদাহরণ

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

public class PreparedStatementSelectQueryDemo {
    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;
        ResultSet rst = null;
        String myQuery = "SELECT Id, Name, Age FROM JavaPreparedStatement";
        
        try {
            con = DriverManager.getConnection(jdbcURL, username, password);
            pstmt = con.prepareStatement(myQuery);
            rst = pstmt.executeQuery();
            
            System.out.println("Id\t\tName\t\tAge\n");
            while (rst.next()) {
                System.out.print(rst.getInt(1));
                System.out.print("\t\t" + rst.getString(2));
                System.out.print("\t\t" + rst.getInt(3));
                System.out.println();
            }
        } catch (Exception exec) {
            exec.printStackTrace();
        } finally {
            // রিসোর্স ক্লোজ করা ভালো প্র্যাক্টিস
            try { if (rst != null) rst.close(); } catch (Exception e) {}
            try { if (pstmt != null) pstmt.close(); } catch (Exception e) {}
            try { if (con != null) con.close(); } catch (Exception e) {}
        }
    }
}

নমুনা আউটপুট

Id          Name        Age
1           Larry       23
2           Sam         25
3           Mike        26

সুস্থ কোডিং টিপস:PreparedStatement SQL ইনজেকশন প্রতিরোধ করে এবং একই কোয়ারি বারবার চালালে পারফরম্যান্স বাড়ায়।

  1. MySQL-এ COUNT() এর ভিতরে CASE শর্ত ব্যবহার করে গণনা করা

  2. MySQL LIKE কোয়েরিতে % (পার্সেন্ট) চিহ্ন সার্চ করা (Escape ব্যবহার করে)

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL-এ UPDATE-এ সাবকুয়েরি (SELECT) ব্যবহার করা