sql
Determine if a database supports Updatable ResultSets
This is an example of how to determine if a database supports updatable ResultSets. When a database supports updatable ResultSets it means that modification to data in a table is allowed through a result set. Checking if a database supports updatable ResultSets implies that you should:
- Load the JDBC driver, using the
ForName(String className)API method of the Class. In this example we use the MySQL JDBC driver. - Create a Connection to the database. Invoke the
getConnection(String url, String user, String password)API method of the DriverManager to create the connection. - Create a DatabaseMetaData, using the
getMetaData()API method. The metadata includes information about the database, including the capabilities of this connection. - Check if the database supports updatable ResultSets. Invoke the
supportsResultSetConcurrency(int type, int concurrency)API method of the DatabaseMetaData.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UpdatableResultSetDatabaseSupport {
public static void main(String[] args) {
Connection connection = null;
try {
// Load the MySQL JDBC driver
String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
// Create a connection to the database
String serverName = "localhost";
String schema = "test";
String url = "jdbc:mysql://" + serverName + "/" + schema;
String username = "username";
String password = "password";
connection = DriverManager.getConnection(url, username, password);
System.out.println("Successfully Connected to the database!");
} catch (ClassNotFoundException e) {
System.out.println("Could not find the database driver " + e.getMessage());
} catch (SQLException e) {
System.out.println("Could not connect to the database " + e.getMessage());
}
try {
DatabaseMetaData metadata = connection.getMetaData();
if (metadata.supportsResultSetConcurrency(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE)) {
System.out.println("Updatable result sets are supported");
} else {
System.out.println("Updatable result sets are not supported");
}
} catch (SQLException e) {
System.out.println("Could not get database metadata " + e.getMessage());
}
}
}
Example Output:
Successfully Connected to the database!
Updatable result sets are supported
This was an example of how to determine if a database supports updatable ResultSets in Java.
