元数据

 1.1 元数据的基本概述

  • 元数据(Metadata),为描述数据的数据(data about data),主要是描述数据属性property)的信息 为了更好理解别人数据库工具类底层的原理。

元数据_第1张图片

1.2 ParameterMetaData(参数元数据)

  •  常用的方法:
  1. getParameterMetaData()  获取参数元数据。
  2. getParameterCount()  获取参数的个数。
  3. getParameterTypeName()  获取参数类型,但是mysql不支持

 

package metadata;

import Utils.JDBCUtils;
import org.junit.Test;

import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Demo01 {

    @Test
    public void testParameter() throws SQLException {
        //获取连接
        Connection connection = JDBCUtils.getConnection();
        //准备SQL语句,获得预编译对象
        String sql = "insert into student(id,name)values(?,?)";
        PreparedStatement pst = connection.prepareStatement(sql);
        //获得参数的元数据
        ParameterMetaData pmd =pst.getParameterMetaData();
        System.out.println("当前的sql需要几个参数:"+pmd.getParameterCount());

        //MySQL不支持获取参数类型 Parameter metadata not available for the given statement
        //System.out.println("第一个参数的类型:"+pmd.getParameterType(1));
    }
}

元数据_第2张图片

1.3 ResultSetMetaData(结果集元数据):

  •  常用的方法:
  1. getMetaData() 得到结果集的元数据
  2. int getColumnCount() 返回此 ResultSet对象中的列数
  3. String getColumnName(int column) 获取指定列的名称
  4. String getColumnTypeName(int column) 获取指定列的数据库特定类型名称

 

/*
        结果元数据
     */
    @Test
    public void testResultSetMetaData() throws SQLException {
        //获取连接
        Connection connection = JDBCUtils.getConnection();
        //准备sql语句,获取预编译对象
        String sql = "select * from student where id=1";
        PreparedStatement pst = connection.prepareStatement(sql);
        //执行sql语句
        ResultSet  rs = pst.executeQuery();
        //获得参数的元数据
        ResultSetMetaData metaData = rs.getMetaData();

        //获取到当前用户查询的列数
        int columnCount = metaData.getColumnCount();
        for (int i = 0; i < columnCount; i++) {
            System.out.println("列名:"+metaData.getColumnName(i+1)+"列类型:"+metaData.getColumnTypeName(i+1));
        }

    }

你可能感兴趣的:(Spring框架)