Java DatabaseMetaData getPrimaryKeys() 方法和示例!
此方法检索表的主键列的描述。它接受3个参数-
catalog-表示表所在目录(一般为数据库)名称的字符串参数,通过""获取没有目录的表中主键列的描述,如果不想,则传递null使用目录,从而缩小搜索范围。
schema-表示表架构名称的字符串参数,传递""以获取表中没有架构的列的描述,如果您不想使用架构,则传递null。
table-表示表名称的字符串参数。
此方法返回一个描述指定主键列的ResultSet对象。此对象保存以下详细信息的值(作为列名)-
要获取数据库中表的所需主键列的描述-
确保您的数据库已启动并正在运行。
使用registerDriver()DriverManager类的方法注册驱动程序。传递与底层数据库对应的驱动程序类的对象。
使用getConnection()DriverManager类的方法获取连接对象。将数据库的URL和用户名、数据库中用户的密码作为字符串变量传递。
使用getMetaData()Connection接口的方法获取关于当前连接的DatabaseMetaData对象。
最后,通过调用getPrimaryKeys()DatabaseMetaData接口的方法,获取包含所需主键列描述的ResultSet对象。
示例
让我们使用CREATE语句在MySQL数据库中创建一个名为cricketers_data的表,如下所示-
CREATE TABLE cricketers_data( 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));
当您观察到上表中名为“ID”的列被声明为主键列时。
以下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_getPrimaryKeys {
public static void main(String args[]) throws SQLException {
//注册驱动程序
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//获取连接
String url = "jdbc:mysql://localhost/mydatabase";
Connection con = DriverManager.getConnection(url, "root", "password");
System.out.println("连接已建立......");
//检索元数据对象
DatabaseMetaData metaData = con.getMetaData();
//检索数据库中的列
ResultSet rs = metaData.getPrimaryKeys("mydatabase", null, "cricketers_data");
//打印列名和大小
while (rs.next()){
System.out.println("表名: "+rs.getString("TABLE_NAME"));
System.out.println("列名: "+rs.getString("COLUMN_NAME"));
System.out.println("目录名称: "+rs.getString("TABLE_CAT"));
System.out.println("主键序列: "+rs.getString("KEY_SEQ"));
System.out.println("主键名称: "+rs.getString("PK_NAME"));
System.out.println(" ");
}
}
}输出结果连接已建立...... 表名: cricketers_data 列名: ID 目录名称: mydatabase 主键序列: 1 主键名称: PRIMARY