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

জাভাতে রিসোর্সগুলি স্বয়ংক্রিয়ভাবে কীভাবে বন্ধ করবেন?


আপনি JDBC-এ try-with-resources ব্যবহার করে রিসোর্সগুলি স্বয়ংক্রিয়ভাবে বন্ধ করতে পারেন।

সিনট্যাক্স

try(রিসোর্সের ঘোষণা){ 
    body..... 
} catch (SQLException e) { 
    e.printStackTrace(); 
}

এটি এক বা একাধিক রিসোর্স ঘোষণা সহ একটি try স্টেটমেন্ট। যেখানে রিসোর্স হল একটি অবজেক্ট যা আর প্রয়োজন না থাকলে বন্ধ করা উচিত।

আপনি এখানে একাধিক রিসোর্স ঘোষণা করতে পারেন এবং সেগুলো স্টেটমেন্টের শেষে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।

আমরা যা ডিক্লেয়ার করি সেগুলো java.lang.AutoCloseable বা java.io.Closeable ইন্টারফেস বাস্তবায়ন করতে হবে, অথবা java.lang.AutoCloseable ক্লাস এক্সটেন্ড করতে হবে।

JDBC-এ আমরা java.sql.CallableStatement, Connection, PreparedStatement, Statement, ResultSet, এবং RowSet কে try-with-resources স্টেটমেন্টে ব্যবহার করতে পারি।

উদাহরণ

নিচে CREATE স্টেটমেন্ট ব্যবহার করে MySQL ডেটাবেসে MyPlayers নামে একটি টেবিল তৈরি করা হয়েছে:

CREATE TABLE MyPlayers( 
    ID INT, 
    First_Name VARCHAR(255), 
    Last_Name VARCHAR(255), 
    Date_Of_Birth date, 
    Place_Of_Birth VARCHAR(255), 
    Country VARCHAR(255), 
    PRIMARY KEY (ID) 
);

এখন, INSERT স্টেটমেন্ট ব্যবহার করে MyPlayers টেবিলে ৭টি রেকর্ড ইনসার্ট করা হবে:

insert into MyPlayers values(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India'); 
insert into MyPlayers values(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica'); 
insert into MyPlayers values(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka'); 
insert into MyPlayers values(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India'); 
insert into MyPlayers values(5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India'); 
insert into MyPlayers values(6, 'Ravindra', 'Jadeja', DATE('1988-12-06'), 'Nagpur', 'India'); 
insert into MyPlayers values(7, 'James', 'Anderson', DATE('1982-06-30'), 'Burnley', 'England');

নিচের JDBC প্রোগ্রামটি JDBC-এ try-with-resources স্টেটমেন্টের ব্যবহার প্রদর্শন করে:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
public class TryWithResources_Example { 
    public static void main(String args[]) { 
        // কানেকশন পাওয়া 
        String mysqlUrl = "jdbc:mysql://localhost/mydatabase"; 
        System.out.println("Connection established......"); 
        // ড্রাইভার রেজিস্টার করা 
        try(Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
            Statement stmt = con.createStatement(); ) { 
            try(ResultSet rs = stmt.executeQuery("select * from MyPlayers");) { 
                // ডেটা রিট্রিভ করা 
                while(rs.next()) { 
                    System.out.print(rs.getInt("ID")+", "); 
                    System.out.print(rs.getString("First_Name")+", "); 
                    System.out.print(rs.getString("Last_Name")+", "); 
                    System.out.print(rs.getDate("Date_Of_Birth")+", "); 
                    System.out.print(rs.getString("Place_Of_Birth")+", "); 
                    System.out.print(rs.getString("Country")); 
                    System.out.println(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        } catch (SQLException e) { 
            e.printStackTrace(); 
        } 
    } 
}

আউটপুট

Connection established...... 
1, Shikhar, Dhawan, 1981-12-05, Delhi, India 
2, Jonathan, Trott, 1981-04-22, CapeTown, SouthAfrica 
3, Kumara, Sangakkara, 1977-10-27, Matale, Srilanka 
4, Virat, Kohli, 1988-11-05, Mumbai, India 
5, Rohit, Sharma, 1987-04-30, Nagpur, India 
6, Ravindra, Jadeja, 1988-12-06, Nagpur, India 
7, James, Anderson, 1982-06-30, Burnely, England 
8, Ryan, McLaren, 1983-02-09, Kumberly, null
  1. Selenium WebDriver জাভায় চাইল্ড ব্রাউজার উইন্ডো ক্লোজ করা

  2. জাভাতে UnsupportedOperationException জেনারেট করুন

  3. জাভাতে এক্সেপশন কীভাবে রি-থ্রো (rethrow) করবেন?

  4. জাভাতে JSON পার্সিং: জনপ্রিয় লাইব্রেরি সহ পূর্ণাঙ্গ গাইড