欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用元数据分析数据库

程序员文章站 2022-05-29 22:53:34
...
1. 使用DatabaseMetaData获取数据库基本信息

DatabaseMetaData可以得到数据库的一些基本信息,包括数据库的名称、版本,以及得到表的信息。
StringgetDatabaseProductName()获取此数据库产品的名称。
intgetDriverMajorVersion()获取此JDBC驱动程序的主版本号。
intgetDriverMinorVersion()获取此JDBC驱动程序的次版本号。


Demo01.java

package com.andrew.jdbc.chap08;

import java.sql.Connection;
import java.sql.DatabaseMetaData;

import com.andrew.jdbc.util.DbUtil;

public class Demo01 {
    public static void main(String[] args) throws Exception {
        DbUtil dbUtil = new DbUtil();
        Connection connection = dbUtil.getConnection();
        DatabaseMetaData databaseMetaData = connection.getMetaData(); // 获取元数据
        System.out.println("数据库名称:" + databaseMetaData.getDatabaseProductName());
        System.out.println("数据库版本:" + databaseMetaData.getDriverMajorVersion() + "." + databaseMetaData.getDriverMinorVersion());
    }
}

运行结果:
数据库名称:MySQL
数据库版本:5.1


2. 使用ResultSetMetaData获取ResultSet对象中的信息

ResultSetMetaData可获取关于ResultSet对象中列的基本信息;
intgetColumnCount()返回此ResultSet对象中的列数。
StringgetColumnName(intcolumn)获取指定列的名称。
intgetColumnTypeName(intcolumn)获取指定列的SQL类型名称。


Demo02.java

package com.andrew.jdbc.chap08;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;

import com.andrew.jdbc.util.DbUtil;

public class Demo02 {
    public static void main(String[] args) throws Exception {
        DbUtil dbUtil = new DbUtil();
        Connection connection = dbUtil.getConnection();
        String sql = "select * from t_book";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        ResultSetMetaData resultSetMetaData = preparedStatement.getMetaData();
        int num = resultSetMetaData.getColumnCount(); // 获取元数据列的总数
        System.out.println("共有" + num + "列");
        for (int i = 1; i <= num; i++) {
            System.out.println(resultSetMetaData.getColumnName(i) + "," + resultSetMetaData.getColumnTypeName(i));
        }
    }
}

运行结果:
共有7列
id,INT
bookName,CHAR
price,DECIMAL
author,CHAR
bookTypeId,INT
context,VARCHAR
pic,BLOB
相关标签: jdbc