mysql databasemetadata_DatabaseMetaData和ResultSetMetaData接口获取元数据的方法

本文介绍了如何在Java中利用DatabaseMetaData和ResultSetMetaData接口来获取MySQL数据库的元数据信息,包括数据库用户、系统函数、时间日期函数、字符串函数、数据库URL、是否只读等详细信息。
摘要由CSDN通过智能技术生成

DatabaseMetaData和ResultSetMetaData就是两个常用的获取数据库元数据相关信息的接口,本文讲解DatabaseMetaData和ResultSetMetaData接口获取元数据的方法。

package www.wlkankan.com;

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

public class testMatadata {

public static void main(String[] args) {

Connection conn=null;

//1. JDBC连接MYSQL的代码很标准。

String DRIVER="com.mysql.jdbc.Driver";

String URL="jdbc:mysql://127.0.0.1:3306/test";

String USER="root";

String PASSWORD="root";

try {

//1.加载驱动程序

Class.forName(DRIVER);

//2.获得数据库链接

conn=DriverManager.getConnection(URL, USER, PASSWORD);

DatabaseMetaData dbmd = conn.getMetaData();

ResultSet rs = null;

System.out.println("数据库已知的用户: "+ dbmd.getUserName());

System.out.println("数据库的系统函数的逗号分隔列表: "+ dbmd.getSystemFunctions());

System.out.println("数据库的时间和日期函数的逗号分隔列表: "+ dbmd.getTimeDateFunctions());

System.out.println("数据库的字符串函数的逗号分隔列表: "+ dbmd.getStringFunctions());

System.out.println("数据库供应商用于 'schema' 的首选术语: "+ dbmd.getSchemaTerm());

System.out.println("数据库URL: " + dbmd.getURL());

System.out.println("是否允许只读:" + dbmd.isReadOnly());

System.out.println("数据库的产品名称:" + dbmd.getDatabaseProductName());

System.out.println("数据库的版本:" + dbmd.getDatabaseProductVersion());

System.out.println("驱动程序的名称:" + dbmd.getDriverName());

System.out.println("驱动程序的版本:" + dbmd.getDriverVersion());

System.out.println("数据库中使用的表类型");

rs = dbmd.getTableTypes();

while (rs.next()) {

System.out.println(rs.getString("TABLE_TYPE"));

}

// 获取连接

PreparedStatement pstmt = conn.prepareStatement("select * from test.user ");

rs = pstmt.executeQuery();

// 得到结果集元数据

//目标:通过结果集元数据,得到列的名称

ResultSetMetaData rs_metaData = rs.getMetaData();

while (rs.next()) {

int count = rs_metaData.getColumnCount();

for (int i=0; i

// 得到列的名称

String columnName = rs_metaData.getColumnName(i + 1);

// 获取每一行的每一列的值

Object columnValue = rs.getObject(columnName);

System.out.print(columnName + "=" + columnValue + ",\n");

}

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

输出

数据库已知的用户: root@localhost

数据库的系统函数的逗号分隔列表: DATABASE,USER,SYSTEM_USER,SESSION_USER,PASSWORD,ENCRYPT,LAST_INSERT_ID,VERSION

数据库的时间和日期函数的逗号分隔列表: DAYOFWEEK,WEEKDAY,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,MINUTE,SECOND,PERIOD_ADD,PERIOD_DIFF,TO_DAYS,FROM_DAYS,DATE_FORMAT,TIME_FORMAT,CURDATE,CURRENT_DATE,CURTIME,CURRENT_TIME,NOW,SYSDATE,CURRENT_TIMESTAMP,UNIX_TIMESTAMP,FROM_UNIXTIME,SEC_TO_TIME,TIME_TO_SEC

数据库的字符串函数的逗号分隔列表: ASCII,BIN,BIT_LENGTH,CHAR,CHARACTER_LENGTH,CHAR_LENGTH,CONCAT,CONCAT_WS,CONV,ELT,EXPORT_SET,FIELD,FIND_IN_SET,HEX,INSERT,INSTR,LCASE,LEFT,LENGTH,LOAD_FILE,LOCATE,LOCATE,LOWER,LPAD,LTRIM,MAKE_SET,MATCH,MID,OCT,OCTET_LENGTH,ORD,POSITION,QUOTE,REPEAT,REPLACE,REVERSE,RIGHT,RPAD,RTRIM,SOUNDEX,SPACE,STRCMP,SUBSTRING,SUBSTRING,SUBSTRING,SUBSTRING,SUBSTRING_INDEX,TRIM,UCASE,UPPER

数据库供应商用于 'schema' 的首选术语:

数据库URL: jdbc:mysql://127.0.0.1:3306/test

是否允许只读:false

数据库的产品名称:MySQL

数据库的版本:5.7.26-log

驱动程序的名称:MySQL Connector Java

驱动程序的版本:mysql-connector-java-5.1.32 ( Revision: jess.balint@oracle.com-20140716155848-mlwabor66widht1n )

数据库中使用的表类型:

LOCAL TEMPORARY

SYSTEM TABLE

SYSTEM VIEW

TABLE

VIEW

user_id=1,

user_name=fanny,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值