
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Java ResultSetMetaData getTableName() method with example
In this article, we will use Java's JDBC to connect to a MySQL database and retrieve the name of the table associated with a specific column in a ResultSet. By accessing the ResultSetMetaData interface, we can utilize its getTableName() method to identify the table that contains a given column, which is especially useful when working with complex queries or multiple joined tables.
To get the ResultSetMetaData object, you need to ?
Register the Driver: Select the required database and register the Driver class of the particular database using the registerDriver() method of the DriverManager class or, the forName() method of the class named Class.
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Get connection: Create a connection object by passing the URL of the database, user-name and password of a user in the database (in string format) as parameters to the getConnection() method of the DriverManager class.
Connection mysqlCon = DriverManager.getConnection(mysqlUrl, "root", "password");
Create a Statement object: Create a Statement object using the createStatement method of the connection interface.
Statement stmt = con.createStatement();
Execute the Query: Execute the SELECT query using the executeQuery() methods of the Statement interface and Retrieve the results into the ResultSet object.
String query = "Select * from MyPlayers"; ResultSet rs = stmt.executeQuery(query);
Get the ResultSetMetsdata object: Retrieve the ResultSetMetsdata object of the current ResultSet by invoking the getMetaData() method.
ResultSetMetaData resultSetMetaData = rs.getMetaData();
Finally, using the getTableName() method of the ResultSetMetaData interface get the name of the table as ?
String tableName = resultSetMetaData.getTableName();
Let us create a table with name MyPlayers in MySQL database using CREATE statement as shown below ?
CREATE TABLE MyPlayers( ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Date_Of_Birth date, Place_Of_Birth VARCHAR(255), Country VARCHAR(255), PRIMARY KEY (ID) );
Now, we will insert 7 records in the MyPlayers table using INSERT statements ?
insert into MyPlayers values(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India'); insert into MyPlayers values(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica'); insert into MyPlayers values(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka'); insert into MyPlayers values(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India'); insert into MyPlayers values(5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India'); insert into MyPlayers values(6, 'Ravindra', 'Jadeja', DATE('1988-12-06'), 'Nagpur', 'India'); insert into MyPlayers values(7, 'James', 'Anderson', DATE('1982-06-30'), 'Burnley', 'England');
Java program to retrieve table name from ResultSetMetaData
Following the JDBC program establishes a connection with MySQL database, and retrieves and displays the name of the table ?
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class ResultSetMetaData_getTableName { public static void main(String args[]) throws SQLException { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/mydatabase"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Creating the Statement Statement stmt = con.createStatement(); //Query to retrieve records String query = "Select * from MyPlayers"; //Executing the query ResultSet rs = stmt.executeQuery(query); //retrieving the ResultSetMetaData object ResultSetMetaData resultSetMetaData = rs.getMetaData(); //Retrieving the column name String tableName = resultSetMetaData.getTableName(4); System.out.println("Name of the table : "+ tableName); } }
Output
Connection established...... Name of the table : myplayers
Code explanation
In the above code, begins by registering the MySQL driver to enable database connectivity. We establish a connection to the MySQL database mydatabase using the DriverManager.getConnection() method with the URL, username, and password. After creating a Statement object, we execute a SELECT * query on the MyPlayers table, and the resulting data is stored in a ResultSet. By invoking getMetaData() on the ResultSet, we access the ResultSetMetaData object, which provides information about the columns in the ResultSet. Specifically, we call getTableName(4) to retrieve the table name associated with the fourth column in the MyPlayers table, which is then printed.