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

Java-MySQL অ্যাপ্লিকেশনে সিঙ্গলটন প্যাটার্ন দিয়ে একক ডেটাবেস কানেকশন অবজেক্ট ব্যবহার

Java-এ MySQL কানেকশন পুনরায় ব্যবহার করতে Singleton Design Pattern বাস্তবায়ন করা হয়। এটি নিশ্চিত করে যে পুরো অ্যাপ্লিকেশনে শুধু একটি Connection অবজেক্ট থাকে।

ConnectDatabase.java (Singleton Class)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectDatabase {
    private static Connection conn = null;
    private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
    private static final String USER = "root";
    private static final String PASS = "123456";

    private ConnectDatabase() {} // Private constructor

    public static Connection getConnection() {
        if (conn != null) {
            try {
                if (!conn.isClosed() && conn.isValid(2)) return conn;
            } catch (SQLException e) {
                conn = null; // Reset if invalid
            }
        }
        return createConnection();
    }

    private static Connection createConnection() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver"); // MySQL 8.0+ driver
            conn = DriverManager.getConnection(URL, USER, PASS);
            return conn;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

CallConnection.java (ব্যবহার)

import java.sql.Connection;

public class CallConnection {
    public static void main(String[] args) {
        Connection con = ConnectDatabase.getConnection();
        if (con != null) {
            System.out.println("Connection successful !!!");
        } else {
            System.out.println("Connection failed!");
        }
    }
}

আউটপুট

Connection successful !!!

বेहতর পρακτিস (Connection Pooling)

প্রোডাকশন এনভায়রনমেন্টে সিঙ্গলটনের পরিবর্তে HikariCP, DBCP2, বা Tomcat JDBC Pool এর মতো কানেকশন পুল ব্যবহার করুন।

HikariCP উদাহরণ (Maven dependency)

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.0.1</version>
</dependency>
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class DatabasePool {
    private static HikariDataSource dataSource;

    static {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC");
        config.setUsername("root");
        config.setPassword("123456");
        config.setMaximumPoolSize(10);
        dataSource = new HikariDataSource(config);
    }

    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
}
  1. Microsoft Access-এ MySQL LIMIT ক্লজ অনুকরণ করা (TOP ব্যবহার করে)

  2. অ্যান্ড্রয়েড ট্যাবলেট দিয়ে অফিস ভিপিএন-এ কীভাবে সংযোগ করবেন

  3. Wink Hub-এ Z-Wave সংযোগ সমস্যা সমাধান

  4. উইন্ডোজ ১০ অটোপ্লে সেটিংস আয়োজন: অ্যাক্সেস, কনফিগার এবং আপনার পিসি সুরক্ষিত করুন