MySql的初学习 -- 第十七章 -- 元数据


博客说明

文章内容输出来源:拉勾教育Java就业急训营

什么是元数据

除了表之外的数据都是元数据,可以分为三类

  1. 查询结果信息: UPDATE 或 DELETE语句 受影响的记录数。
  2. 数据库和数据表的信息: 包含了数据库及数据表的结构信息。
  3. MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。

元数据相关的命令介绍

– 1.查看服务器当前状态
SHOW STATUS;

– 2.查看MySQl的版本信息
SELECT VERSION();

– 3.查询表中的详细信息
SHOW COLUMNS FROM 表名;

– 4.显示数据表的详细索引信息
SHOW INDEX FROM 表名;

– 5.列出所有数据库
SHOW DATABASES;

– 6.显示当前数据库的所有表
SHOW TABLES;

– 7.获取当前的数据库名
SELECT DATABASE();

使用JDBC查看元数据

元数据类 作用
DatabaseMetaData 描述数据库的元数据对象
ResultSetMetaData 描述结果集的元数据对象

获取元数据对象的方法 : getMetaData ()

  1. connection 连接对象, 调用 getMetaData () 方法,获取的是DatabaseMetaData 数据库元数据对象
  2. PrepareStatement 预处理对象调用 getMetaData () , 获取的是ResultSetMetaData , 结果集元数据对象

DatabaseMetaData的常用方法

方法 描述
getURL() 获取数据库的URL
getUserName() 获取当前数据库的用户名
getDatabaseProductName() 获取数据库的产品名称
getDatabaseProductVersion() 获取数据的版本号
getDriverName() 返回驱动程序的名称
	/**
     * 获取数据库相关的数据信息,使用DatabaseMetaData
     */
    @Test
    public void testDataBaseMetaData() throws SQLException {
    
    
        //1.获取连接
        Connection con = DruidUtils.gerConnection();
        //2.获取代表数据库的元数据对象 DatabaseMetaData
        DatabaseMetaData metaData = con.getMetaData();

        //3.获取数据库相关的元数据信息
        //获取Url
        String url = metaData.getURL();
        System.out.println("数据库的Url:" + url);

        //获取当前用户
        String userName = metaData.getUserName();
        System.out.println("数据库的当前用户:" + userName);

        //获取数据库产品名称
        String databaseProductName = metaData.getDatabaseProductName();
        System.out.println("数据库的产品名称:" + databaseProductName);

        //获取数据库版本号
        String databaseProductVersion = metaData.getDatabaseProductVersion();
        System.out.println("数据库的版本号:" + databaseProductVersion);

        //获取数据库驱动程序名称
        String driverName = metaData.getDriverName();
        System.out.println("数据库的驱动程序名称:" + driverName);

		//判断当前数据库是否允许只读
        boolean readOnly = metaData.isReadOnly();//如果为true,只允许只读
        System.out.println(readOnly);

        //4.关闭连接
        con.close();
    }

ResultSetMetaData的常用方法

方法 描述
getColumnCount() 当前结果集共有多少列
getColumnName(int i) 获取指定列号的列名, 参数是整数 从1开始
getColumnTypeName(int i) 获取指定列号列的类型, 参数是整数 从1开始
	/**
     * 获取结果集相关的数据信息,使用ResultSetMetaData
     * @throws SQLException
     */
    @Test
    public void testResultSetMetaData() throws SQLException {
    
    
        //1.获取连接
        Connection con = DruidUtils.gerConnection();

        //2.获取预处理对象
        PreparedStatement ps = con.prepareStatement("select * from employee");
        ResultSet resultSet = ps.executeQuery();

        //3.获取结果集元素对象
        ResultSetMetaData metaData = ps.getMetaData();
        //获取结果集共有多少列
        int columnCount = metaData.getColumnCount();
        System.out.println("结果集共有" + columnCount + "列");

        for (int i = 1; i <= columnCount; i++) {
    
    
            //获取指定列号的列名
            String catalogName = metaData.getColumnName(i);
            System.out.println("列名为:" + catalogName);

            //获取指定列号的类型
            String columnTypeName = metaData.getColumnTypeName(i);
            System.out.println("类型为:" + columnTypeName);
            System.out.println();
        }

        //4.释放资源
        DruidUtils.CloseDBCP(con, ps, resultSet);
    }

猜你喜欢

转载自blog.csdn.net/zy3062231314/article/details/113126946
今日推荐