千家信息网

Java基础系列15:JDBC中使用元数据分析数据库

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,(1)DatabaseMetaData:package javase.jdbc;import java.sql.Connection;import java.sql.DatabaseMetaData;
千家信息网最后更新 2024年11月23日Java基础系列15:JDBC中使用元数据分析数据库

(1)DatabaseMetaData:

package javase.jdbc;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.ResultSet;import java.sql.SQLException;public class DatabaseMetaDataDemo {        public static void main(String[] args) {                Connection connection = JDBCConnection.getConnection();                try {                        DatabaseMetaData dMetaData = connection.getMetaData(); // 实例化元数据                        System.out.println("数据库名:" + dMetaData.getDatabaseProductName());                        System.out.println("数据库版本: "                                        + dMetaData.getDatabaseProductVersion());                        ResultSet resultSet = dMetaData.getPrimaryKeys(null, null, "users");                        while (resultSet.next()) {                                System.out.println("表类别:" + resultSet.getString(1));                                System.out.println("表模式:" + resultSet.getString(2));                                System.out.println("表名称:" + resultSet.getString(3));                                System.out.println("列名称:" + resultSet.getString(4));                                System.out.println("主键:" + resultSet.getString(5));                                System.out.println("主键名称:" + resultSet.getString(6));                        }                } catch (SQLException e) {                        e.printStackTrace();                }        }}

输出:

数据库名:MySQL数据库版本: 5.5.19表类别:jdbcdemo表模式:null表名称:users列名称:id主键:1主键名称:PRIMARY

(2)ResultSetMetaData:

package javase.jdbc;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSetMetaData;import java.sql.SQLException;public class ResultSetMetaDataDemo {        public static void main(String[] args) {                String sql = "SELECT id,username,password,classId FROM users";                Connection connection = JDBCConnection.getConnection();                try {                        PreparedStatement pStatement = connection.prepareStatement(sql);                        ResultSetMetaData rSetMetaData = pStatement.getMetaData();                        System.out.println("返回数据有" + rSetMetaData.getColumnCount() + "个字段");                        if (rSetMetaData.isAutoIncrement(1))                                System.out.println(rSetMetaData.getColumnName(1) + "字段是自增的");                } catch (SQLException e) {                        e.printStackTrace();                }        }}

输出:

返回数据有4个字段id字段是自增的


0