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

Java DatabaseMetaData getTypeInfo() метод с примером

Метод getTypeInfo() интерфейса DatabaseMetadata используется для получения описания всех типов данных, поддерживаемых базовой базой данных.

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

 

Чтобы получить объект DatabaseMetaData —

  • Убедитесь, что ваша база данных запущена и работает.
  • Зарегистрируйте драйвер с помощью метода registerDriver () класса DriverManager. Передайте объект класса драйвера, соответствующий базовой базе данных.
  • Получите объект подключения с помощью метода getConnection () класса DriverManager. Передайте URL-адрес базы данных и, имя пользователя, пароль пользователя в базе данных, в качестве строковых переменных.
  • Получите объект DatabaseMetaData по отношению к текущему соединению, используя метод getMetaData () интерфейса Connection.

Наконец, получите объект ResultSet, содержащий описание поддерживаемых типов данных, вызвав метод getTypeInfo () интерфейса DatabaseMetaData.

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

Пример

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DatabaseMetadata_getTypeInfo {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String url = "jdbc:mysql://localhost/mydatabase";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //Retrieving the meta data object
      DatabaseMetaData metaData = con.getMetaData();
      //Retrieving the columns in the database
      ResultSet info = metaData.getTypeInfo();
      //Printing the column name and size
      while (info.next()) {
         System.out.println("Data type name: "+info.getString("TYPE_NAME"));
         System.out.println("Integer value representing this datatype: "+info.getInt("DATA_TYPE"));
         System.out.println("Maximum precision of this datatype: "+info.getInt("PRECISION"));
         if(info.getBoolean("CASE_SENSITIVE")) {
            System.out.println("Current datatype is case sensitive ");
         } else {
            System.out.println("Current datatype is not case sensitive ");
         }
         if(info.getBoolean("AUTO_INCREMENT")) {
            System.out.println("Current datatype can be used for auto increment");
         } else {
            System.out.println("Current datatype can not be used for auto increment");
         }
         System.out.println(" ");
      }
   }
}

Вывод

Connection established......
Data type name: BIT
Integer value representing this datatype: -7
Maximum precision of this datatype: 1
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: BOOL
Integer value representing this datatype: -7
Maximum precision of this datatype: 1
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: TINYINT
Integer value representing this datatype: -6
Maximum precision of this datatype: 3
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: TINYINT UNSIGNED
Integer value representing this datatype: -6
Maximum precision of this datatype: 3
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: BIGINT
Integer value representing this datatype: -5
Maximum precision of this datatype: 19
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: BIGINT UNSIGNED
Integer value representing this datatype: -5
Maximum precision of this datatype: 20
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: LONG VARBINARY
Integer value representing this datatype: -4
Maximum precision of this datatype: 16777215
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: MEDIUMBLOB
Integer value representing this datatype: -4
Maximum precision of this datatype: 16777215
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: LONGBLOB
Integer value representing this datatype: -4
Maximum precision of this datatype: 2147483647
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: BLOB
Integer value representing this datatype: -4
Maximum precision of this datatype: 65535
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: TINYBLOB
Integer value representing this datatype: -4
Maximum precision of this datatype: 255
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: VARBINARY
Integer value representing this datatype: -3
Maximum precision of this datatype: 255
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: BINARY
Integer value representing this datatype: -2
Maximum precision of this datatype: 255
Current datatype is case sensitive
Current datatype can not be used for auto increment
Data type name: LONG VARCHAR
Integer value representing this datatype: -1
Maximum precision of this datatype: 16777215
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: MEDIUMTEXT
Integer value representing this datatype: -1
Maximum precision of this datatype: 16777215
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: LONGTEXT
Integer value representing this datatype: -1
Maximum precision of this datatype: 2147483647
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: TEXT
Integer value representing this datatype: -1
Maximum precision of this datatype: 65535
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: TINYTEXT
Integer value representing this datatype: -1
Maximum precision of this datatype: 255
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: CHAR
Integer value representing this datatype: 1
Maximum precision of this datatype: 255
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: NUMERIC
Integer value representing this datatype: 2
Maximum precision of this datatype: 65
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: DECIMAL
Integer value representing this datatype: 3
Maximum precision of this datatype: 65
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: INTEGER
Integer value representing this datatype: 4
Maximum precision of this datatype: 10
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: INTEGER UNSIGNED
Integer value representing this datatype: 4
Maximum precision of this datatype: 10
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: INT
Integer value representing this datatype: 4
Maximum precision of this datatype: 10
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: INT UNSIGNED
Integer value representing this datatype: 4
Maximum precision of this datatype: 10
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: MEDIUMINT
Integer value representing this datatype: 4
Maximum precision of this datatype: 7
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: MEDIUMINT UNSIGNED
Integer value representing this datatype: 4
Maximum precision of this datatype: 8
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: SMALLINT
Integer value representing this datatype: 5
Maximum precision of this datatype: 5
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: SMALLINT UNSIGNED
Integer value representing this datatype: 5
Maximum precision of this datatype: 5
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: FLOAT
Integer value representing this datatype: 7
Maximum precision of this datatype: 10
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: DOUBLE
Integer value representing this datatype: 8
Maximum precision of this datatype: 17
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: DOUBLE PRECISION
Integer value representing this datatype: 8
Maximum precision of this datatype: 17
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: REAL
Integer value representing this datatype: 8
Maximum precision of this datatype: 17
Current datatype is not case sensitive
Current datatype can be used for auto increment
Data type name: VARCHAR
Integer value representing this datatype: 12
Maximum precision of this datatype: 255
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: ENUM
Integer value representing this datatype: 12
Maximum precision of this datatype: 65535
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: SET
Integer value representing this datatype: 12
Maximum precision of this datatype: 64
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: DATE
Integer value representing this datatype: 91
Maximum precision of this datatype: 0
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: TIME
Integer value representing this datatype: 92
Maximum precision of this datatype: 0
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: DATETIME
Integer value representing this datatype: 93
Maximum precision of this datatype: 0
Current datatype is not case sensitive
Current datatype can not be used for auto increment
Data type name: TIMESTAMP
Integer value representing this datatype: 93
Maximum precision of this datatype: 0
Current datatype is not case sensitive
Current datatype can not be used for auto increment

Оцени статью

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

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

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

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

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

 

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

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

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

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