Java ResultSetMetaData getColumnDisplaySize() Method with Example



In this article, we will learn the ResultSetMetaData getColumnDisplaySize() method with an example in Java. This is useful when you need to understand the display requirements of a column in a result set.

Method Signature

The getColumnDisplaySize(int column) method of the ResultSetMetaData class in Java retrieves the maximum width of the specified column, measured in characters.

int getColumnDisplaySize(int column) 
  • Parameters: The 1-based index of the column for which you want the display size.
  • Returns: The maximum number of characters that can be displayed for the specified column.
  • Throws: SQLException: If the column index is invalid or an error occurs while retrieving metadata.

Using getColumnDisplaySize()

The following program demonstrates how to use the getColumnDisplaySize() method. It connects to a MySQL database, retrieves the metadata of a table, and displays the display size of a specific column.

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, username, 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 getColumnDisplaySize() method of the ResultSetMetaData interface, get the display size of the column with index 4 ?

int columnDisplaySize = resultSetMetaData.getColumnDisplaySize(4);

Let us create a table with the name MyPlayers in the MySQL database using the 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');

Example

Following the JDBC program, it establishes and retrieves a connection with the MySQL database. It displays the display size of the column with index 4 in the MyPlayers table using the getColumnDisplaySize() method.

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_getColumnDisplaySize {
   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 count of the current table
      int columnDisplaySize = resultSetMetaData.getColumnDisplaySize(4);
      System.out.println("Display size of the column: "+ columnDisplaySize);
   }
}

Output

Connection established......
Display size of the column: 10

Conclusion

The getColumnDisplaySize() method provides valuable information about how much space is needed to display data in a column. By using ResultSetMetaData, developers can dynamically adapt their application's UI to accommodate database constraints.

Alshifa Hasnain
Alshifa Hasnain

Converting Code to Clarity

Updated on: 2025-01-28T18:22:52+05:30

608 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements