Java DatabaseMetaData getPrimaryKeys() 方法及示例


DatabaseMetaData

DatabaseMetaData 是一个接口,提供访问数据库本身元数据的方法。

getPrimaryKeys() 方法

getPrimaryKeys() 方法Java 中 DatabaseMetaData 接口的一个方法,用于检索数据库中表的主键信息。 主键 是表中每条记录的唯一标识符。

它接受 3 个参数:

  • catalog - 表示表所在的目录(通常是数据库)名称的字符串参数,传递 "" 以获取没有目录的表的描述,如果不想使用目录,则传递 null 以缩小搜索范围。

  • schema - 表示表模式名称的字符串参数,传递 "" 以获取没有模式的表的描述,如果不想使用模式,则传递 null。

  • table - 表示表名称的字符串参数。

此方法返回一个 ResultSet 对象,描述指定的主键列。此对象包含以下详细信息(作为列名):

列名
数据类型
描述
TABLE_CAT
字符串
表的目录。
TABLE_SCHEM
字符串
模式的目录。
TABLE_NAME
字符串
表的名称。
COLUMN_NAME
字符串
列的名称。
KEY_SEQ
短整型
主键的序列号。
PK_NAME
字符串
主键的名称。

访问主键元数据的步骤

要获取数据库中表所需主键列的描述:

  • 确保您的数据库正在运行。

  • 使用 DriverManager 类registerDriver() 方法注册驱动程序。传递与底层数据库对应的驱动程序类的对象。

  • 使用 DriverManager 类getConnection() 方法获取连接对象。传递数据库的 URL 以及数据库中用户的用户名和密码,作为字符串变量。

  • 使用 Connection 接口的 getMetaData() 方法获取当前连接的 DatabaseMetaData 对象。

  • 最后,通过调用 DatabaseMetaData 接口getPrimaryKeys() 方法,获取包含所需主键列描述的 ResultSet 对象。

检索主键信息的代码实现

让我们使用以下所示的 CREATE 语句在 MySQL 数据库 中创建一个名为 cricketers_data 的表:

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DatabaseMetaData_getPrimaryKeys {
   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://127.0.0.1/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 rs = metaData.getPrimaryKeys("mydatabase", null, "cricketers_data");
      //Printing the column name and size
      while (rs.next()){
         System.out.println("Table name: "+rs.getString("TABLE_NAME"));
         System.out.println("Column name: "+rs.getString("COLUMN_NAME"));
         System.out.println("Catalog name: "+rs.getString("TABLE_CAT"));
         System.out.println("Primary key sequence: "+rs.getString("KEY_SEQ"));
         System.out.println("Primary key name: "+rs.getString("PK_NAME"));
         System.out.println(" ");
      }
   }
}

输出

Connection established......
Table name: cricketers_data
Column name: ID
Catalog name: mydatabase
Primary key sequence: 1
Primary key name: PRIMARY

代码解释

在提供的代码中,我们首先使用 DriverManager 类registerDriver() 方法注册 MySQL 驱动程序。然后,通过传递数据库的 URL 以及用户名和密码来建立与数据库的连接。连接建立后,我们检索一个 DatabaseMetaData 对象,该对象包含有关数据库的元数据。使用此 DatabaseMetaData 对象,调用 getPrimaryKeys() 方法,该方法检索指定表 (cricketers_data) 的主键详细信息。结果是一个 ResultSet 对象,从中提取表名、列名、目录、键序列和主键名称,并将其打印到控制台。

更新于: 2024年9月20日

2K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告