Java DatabaseMetaData supportsSavepoints() method with example

JDBCJava 8Object Oriented ProgrammingProgramming

The supportsSavepoints() method of the DatabaseMetaData interface is used to determine whether the underlying database supports savepoints.

This method returns a boolean value which is −

  • True, when the underlying database supports savepoints.
  • False, when the underlying database doesn't support savepoints.

To determine whether the underlying database supports save points −

  • Make sure your database is up and running.
  • Register the driver using the registerDriver() method of the DriverManager class. Pass an object of the driver class corresponding to the underlying database.
  • Get the connection object using the getConnection() method of the DriverManager class. Pass the URL the database and, user name, password of a user in the database, as String variables.
  • Get the DatabaseMetaData object with respect to the current connection using the getMetaData() method of the Connection interface.
  • Finally, invoke the supportsSavepoints() method of the ResultSetMetaData interface and save the value it returns in a boolean variable say, bool. If this value is true, underlying database supports savepoints else it doesn't.

Following JDBC program establishes connection with MySQL database, and determines and prints whether it supports savepoints.


import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseMetaData_supportsSavepoints {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String url = "jdbc:mysql://localhost/mydatabase";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //Retrieving the meta data object
      DatabaseMetaData metaData = con.getMetaData();
      //Determining whether the underlying database supports save points
      boolean bool = metaData.supportsSavepoints();
      if(bool) {
         System.out.println("Underlying database support savepoints");
      } else {
         System.out.println("Underlying database does not support savepoints");


Connection established......
Underlying database support save points
Published on 14-May-2019 11:31:48