JDBC(五) JDBC元数据

来源:互联网 发布:淘宝衣服卖点怎么写 编辑:程序博客网 时间:2024/04/29 08:41

在JDBC技术中,元数据主要有三类。主要有三个接口,这三个接口定义了获取jdbc元数据的一些方法,由具体的驱动提供实现。

  1. DatabaseMetaData
  2. ParameterMetaData
  3. ResultSetMetaData

DatabaseMetaData

在这个接口中,主要定义了一些方法,用于获取一些数据库的基本信息,表,列等信息。

public void testDataBaseMetaData() {        try {            Connection connection = JDBCUtils.getConnection();            // 获取DatabaseMetaData对象            DatabaseMetaData databaseMetaData = connection.getMetaData();            System.out.println(databaseMetaData.getURL());// 返回一个代表数据库的URL的字符串            System.out.println(databaseMetaData.getUserName());// 返回连接当前数据库管理系统的用户名            System.out.println(databaseMetaData.getDatabaseProductName());// 返回数据库产品的名称。            System.out.println(databaseMetaData.getDatabaseProductVersion());// 返回数据库的版本号。            System.out.println(databaseMetaData.getDriverName());// 返回驱动程序的名称。            System.out.println(databaseMetaData.getDriverVersion());// 返回驱动程序的版本号。        } catch (Exception e) {            // TODO: handle exception        }    }

ParameterMetaData

在这个接口中,主要定义了一些回去prepareStatement的元数据的方法

public void testParameterMetaData() {        try {            Connection connection = JDBCUtils.getConnection();            String sql = "SELECT * FROM user WHERE user_id = ? AND user_name = ?";            PreparedStatement preparedStatement = connection                    .prepareStatement(sql);            preparedStatement.setInt(1, 2);            preparedStatement.setString(2, "marry");            ParameterMetaData parameterMetaData = preparedStatement                    .getParameterMetaData();            int parameterCount = parameterMetaData.getParameterCount();// 获取参数个数            System.out.println(parameterCount);            System.out.println(parameterMetaData.getParameterType(1));// 获取参数类型 可惜的是mysql不支持            System.out.println(parameterMetaData.getParameterTypeName(1));// 获取参数类型名  可惜的是mysql不支持        } catch (Exception e) {            // TODO: handle exception        }    }

ResultSetMetaData

在这接口中,主要定义了一些获取结果集的元数据的一些方法

public void testResultSetMetaData() {        try {            Connection connection = JDBCUtils.getConnection();            String sql = "SELECT * FROM user WHERE user_id = ? AND user_name = ?";            PreparedStatement preparedStatement = connection                    .prepareStatement(sql);            preparedStatement.setInt(1, 2);            preparedStatement.setString(2, "marry");            ResultSet resultSet = preparedStatement.executeQuery();            // 获取ResultSetMetaData对象            ResultSetMetaData resultSetMetaData = resultSet.getMetaData();            System.out.println(resultSetMetaData.getColumnCount());// 获取返回的列数            System.out.println(resultSetMetaData.getColumnName(1));// 获取制定列的名称            System.out.println(resultSetMetaData.getColumnType(1));// 获取指定列的数据类        } catch (Exception e) {            // TODO: handle exception        }    }
0 0
原创粉丝点击