How to work with one database connection object in the entire Java-MySQL application?

MySQLMySQLi DatabaseJava 8

Use the singleton design pattern. Here is the Java code that returns a single object −

ConnectDatabase.java

import java.sql.Connection;
import java.sql.DriverManager;
public class ConnectDatabase {
   static Connection conn = null;
   public static Connection getConnection() {
      if (conn != null) return conn;
      String database = "test";
      String Username = "root";
      String password = "123456";
      return getConnection(database, Username, password);
   }
   private static Connection getConnection(String databaseName, String UserName, String password) {
      try {
         Class.forName("com.mysql.jdbc.Driver");
         conn = DriverManager.getConnection("jdbc:mysql://localhost/" + databaseName + "?user=" + UserName + "&password=" + password);
      } catch (Exception e) {
         e.printStackTrace();
      }
      return conn;
   }
}

The following is the class that calls the above method −

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 !!!");
      }
   }
}   

Output

The content of the above output is as follows −

Mon Feb 11 20:15:32 IST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Connection successful !!!
raja
Published on 19-Mar-2019 07:16:01

Advertisements