package com.itheima.metadata_04;
import com.itheima.utils.DruidJdbcUtil;
import java.sql.*;
/*
10.元数据--概述与了解(了解)
ParameterMetaData:用来封装JdbcTemplate的update方法
通过PreparedStatement 的getParameterMetaData()方法来获取到ParameterMetaData 对象
api:
1.int getParameterCount() 获取PreparedStatement的SQL语句参数?的个数
2.int getParameterType(int param) 获取指定参数的SQL类型。
ResultSetMetaData:用来封装JdbcTemplate的query方法
通过ResultSet 的getMetaData() 方法来获取到ResultSetMetaData 对象
api:
1.int getColumnCount() 返回此 ResultSet对象中的列数
2.String getColumnName(int column) 获取指定列的名称,用于后期Book对象的赋值操作
3.String getColumnTypeName(int column) 获取指定列的数据库特定类型名称
*/
public class Demo {
public static void main(String[] args) throws SQLException {
Connection connection = DruidJdbcUtil.getConnection();
String sql = "select * from book";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
//获取结果集元数据
ResultSetMetaData metaData = resultSet.getMetaData();
System.out.println(metaData.getColumnCount());//4
System.out.println(metaData.getColumnName(1));//bid
System.out.println(metaData.getColumnTypeName(1));//int
}
private static void ParameterMetaDataTest() throws SQLException {
Connection connection = DruidJdbcUtil.getConnection();
String sql = "insert into book values(?,?,?,?);";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//获取参数元数据
ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData();
System.out.println(parameterMetaData.getParameterCount());//占位符的个数:4
//System.out.println(parameterMetaData.getParameterType(1));//mysql数据库不支持这个api,会报错
}
}