Перейти к контенту

Как получить все имена таблиц из базы данных, используя JDBC?

Вы можете получить список таблиц в текущей базе данных в MySQL, используя запрос SHOW TABLES.

Show tables;

Следующая программа JDBC извлекает список таблиц в базе данных, выполняя запрос show tables.

 

пример

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ListingTables {
   public static void main(String args[]) throws Exception {
      //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 a Statement object
      Statement stmt = con.createStatement();
      //Retrieving the data
      ResultSet rs = stmt.executeQuery("Show tables");
      System.out.println("Tables in the current database: ");
      while(rs.next()) {
         System.out.print(rs.getString(1));
         System.out.println();
      }
   }
}

Выход

Connection established......
cricketers_data
customers
dispatches_data
employee_data
myplayers
sales
test
tutorials_data

Или вы можете использовать метод getTables () интерфейса DatabaseMetaData.

пример

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RS_getTables {
   public static void main(String args[]) throws Exception {
      //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......");
      //Retrieving the meta data object
      DatabaseMetaData metaData = con.getMetaData();
      String[] types = {"TABLE"};
      //Retrieving the columns in the database
      ResultSet tables = metaData.getTables(null, null, "%", types);
      while (tables.next()) {
         System.out.println(tables.getString("TABLE_NAME"));
      }
   }
}

Выход

Connection established......
cricketers_data
customers
dispatches_data
employee_data
myplayers
sales
test
tutorials_data

Вы можете получить имя таблицы в текущем объекте ResultSet, используя метод getTableName () интерфейса ResultSetMetaData. Этот метод принимает целочисленное значение, представляющее индекс столбца, и возвращает значение String, представляющее имя таблицы, содержащей данный столбец.

Давайте создадим таблицу с именем MyPlayers в базе данных MySQL, используя оператор CREATE, как показано ниже —

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)
);

Теперь мы вставим 7 записей в таблицу MyPlayers, используя операторы INSERT —

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');

После этого программа JDBC устанавливает соединение с базой данных MySQL, извлекает и отображает название таблицы.

пример

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);
   }
}

Выход

Connection established......
Name of the table: myplayers

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)