使用元数据分析数据库
程序员文章站
2022-03-06 18:58:40
...
1. 使用DatabaseMetaData获取数据库基本信息
2. 使用ResultSetMetaData获取ResultSet对象中的信息
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
上一篇: ResultSet结果集