Home » Core Java » sql » Getting column names of a database table

About Ilias Tsagklis

Ilias Tsagklis
Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.

Getting column names of a database table

With this example we are going to demonstrate how to get the column names of a database Table. In short, to get the column names of a database Table 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 Statement, using the createStatement() API method of the Connection.
  • Execute the query to the database, using the executeQuery(String sql) API method. The data produced by the given query is a ResultSet.
  • Create a ResultSetMetaData, using the getMetaData() API method of the ResultSet. It is the number, types and properties of this ResultSet object’s columns.
  • Invoke the getColumnCount() API method to get the number of columns in this ResultSet. For each one of them, get the column’s name, using the getColumnName(int column) API method.

Let’s take a look at the code snippet that follows:

package com.javacodegeeks.snippets.core;

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 RetrieveColumnNamesExample {
 
  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 {


// Create a result set

Statement statement = connection.createStatement();

ResultSet results = statement.executeQuery("SELECT * FROM test_table");


// Get resultset metadata

ResultSetMetaData metadata = results.getMetaData();

int columnCount = metadata.getColumnCount();


System.out.println("test_table columns : ");


// Get the column names; column indices start from 1

for (int i=1; i<=columnCount; i++) {

  String columnName = metadata.getColumnName(i);

  System.out.println(columnName);

}

    } catch (SQLException e) {

  System.out.println("Could not retrieve database metadata " + e.getMessage());
    }

  }
}

Example Output:

Successfully Connected to the database!
test_table columns : 
test_col

 
This was an example of how to get the column names of a database Table in Java.

(No Ratings Yet)
Start the discussion Views Tweet it!

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

Receive Java & Developer job alerts in your Area

 

Leave a Reply

avatar
  Subscribe  
Notify of