WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

MySQL · Advanced · question 50 of 100

How do you implement connection pooling in MySQL to improve performance?

📕 Buy this interview preparation book: 100 MySQL questions & answers — PDF + EPUB for $5

Connection pooling is a technique that allows efficient database connectivity from a web application. It maintains a cache of database connections so that the connections can be reused when the application requests a database connection rather than opening a new database connection for each request. This technique can improve the performance of the database significantly.

To implement connection pooling in MySQL, follow the steps below:

1. Download a JDBC driver that supports connection pooling. For example, the commons-dbcp2 library can be used.

2. Initialize the connection pool by creating an object of the connection pool configuration interface. This object can be created by setting the connection properties such as the JDBC driver, database URL, username, and password.

Configuring the Connection Pool

import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbcp2.BasicDataSource;

public class ConnectionPool {
   private BasicDataSource connectionPool = new BasicDataSource();

   public ConnectionPool() {
      connectionPool.setDriverClassName("com.mysql.jdbc.Driver");
      connectionPool.setUrl("jdbc:mysql://localhost:3306/mydatabase");
      connectionPool.setUsername("root");
      connectionPool.setPassword("password");
   }

   public Connection getConnection() throws SQLException {
      return connectionPool.getConnection();
   }
}

In the above example, a connection pool is created using the BasicDataSource class provided by the commons-dbcp2 library. The connection properties are configured using the setDriverClassName, setUrl, setUsername, and setPassword methods.

3. Use the initialized connection pool to obtain and release connections for database operations.

Using the Connection Pool

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
 
public class EmployeeDAO {
   private ConnectionPool connectionPool = new ConnectionPool();
 
   public void save(Employee employee) throws SQLException {
      Connection connection = null;
      PreparedStatement statement = null;
      try {
         connection = connectionPool.getConnection();     
         statement = connection.prepareStatement("INSERT INTO Employee VALUES(?, ?, ?)");
         statement.setInt(1, employee.getId());
         statement.setString(2, employee.getName());
         statement.setInt(3, employee.getAge());
         statement.executeUpdate();
      } finally {
         releaseResources(connection, statement);
      }
   }
 
   private void releaseResources(Connection connection, PreparedStatement statement) {
      try {
         if (statement != null) {
            statement.close();
         }
         if (connection != null) {
            connection.close();
         }
      } catch (SQLException e) {
         System.out.println("Error while closing resources" + e.getMessage());
      }
   }
}

In the above example, the connection pool is used to obtain a connection and a prepared statement is created to execute the SQL query. After the database operations are complete, the connection and statement objects are released back to the connection pool using the releaseResources method.

Connection pooling can help improve the performance of web applications where there are many users accessing the database simultaneously. By reusing existing database connections, the overhead of creating and destroying connections is eliminated, resulting in improved performance and reduced resource consumption.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic MySQL interview — then scores it.
📞 Practice MySQL — free 15 min
📕 Buy this interview preparation book: 100 MySQL questions & answers — PDF + EPUB for $5

All 100 MySQL questions · All topics