zoukankan      html  css  js  c++  java
  • JDBC获取 库元数据,表元数据,查看所有表,所有字段信息(包括主键)

    //先获取jdbc连接
                Connection connection = DriverManager.getConnection(JDBCUrl);
    //从conn中获取数据库的元数据
                DatabaseMetaData databaseMetaData = connection.getMetaData();
                //库信息
    //连接的库名
                System.out.println(connection.getCatalog());
    //数据库类型 MYSQL ORACLE
                System.out.println(databaseMetaData.getDatabaseProductName());
    //数据库版本号 8.0.15
                System.out.println(databaseMetaData.getDatabaseProductVersion());
    //数据库大版本 8
                System.out.println(databaseMetaData.getDatabaseMajorVersion());
    //jdbc连接的url
                System.out.println(databaseMetaData.getURL());
                System.out.println("数据库中使用的表类型");
                String[] types = { "TABLE" };
                //获取所有表
                ResultSet rs = databaseMetaData.getTables(connection.getCatalog(), null, null, null);
                while (rs.next()) {
                    String tableName = rs.getString("TABLE_NAME"); //表名
                    String tableType = rs.getString("TABLE_TYPE"); //表类型
                    String remarks = rs.getString("REMARKS"); //表备注
                    System.out.println("表名:"+tableName + "   表类型: " + tableType + "   表注释:" + remarks);
                    //表元数据
                    ResultSetMetaData resultSetMetaData = rs.getMetaData();
    //遍历表所有元数据信息
                    for (int i = 1; i <=  resultSetMetaData.getColumnCount(); i++) {
                        System.out.println(rs.getString(i)+"-==-"+ resultSetMetaData.getColumnName(i));
                    }
                    //表字段信息
                    ResultSet resultSet = databaseMetaData.getColumns(connection.getCatalog(),databaseMetaData.getUserName(),tableName,null);
                    while (resultSet.next()){
    //遍历表字段所有元数据
                        for (int i = 0; i < resultSet.getMetaData().getColumnCount(); i++) {
                            System.out.println(resultSet.getMetaData().getColumnName(i+1)+":"+resultSet.getString(i+1));
                        }
                        System.out.println(resultSet.getString("TABLE_NAME")//表名
                                +"-"+resultSet.getString("column_name")//字段名
                                +"-"+resultSet.getString("TYPE_NAME")//字段类型
                                +"-"+resultSet.getString("DATA_TYPE")//字段类型
                                +"-"+resultSet.getString("COLUMN_SIZE")//长度
                                +"-"+resultSet.getString("DECIMAL_DIGITS")//长度
                                +"-"+resultSet.getString("COLUMN_DEF")//默认值
                                +"-"+resultSet.getString("REMARKS")//注释
                                +"-"+resultSet.getString("ORDINAL_POSITION")//字段位置
                                +"-"+resultSet.getString("IS_AUTOINCREMENT"));//是否自增
                    }
    //获取表主键
                    ResultSet rs2 = connection.getMetaData().getPrimaryKeys(connection.getCatalog(), null, tableName);
                    ResultSetMetaData resultSetMetaData2 = rs2.getMetaData();
                    while (rs2.next()){
                            System.out.println("主键:"+rs2.getString("COLUMN_NAME"));
                    }
    
                }            
  • 相关阅读:
    性能测试十三:linux常用命令
    性能测试十二:jmeter进阶之java请求参数化
    性能测试十一:jmeter进阶之java请求
    性能测试十:jmeter进阶之webService与socket
    性能测试九:jmeter进阶之beanshell的使用+断言
    初识贝叶斯网络
    初识贝叶斯网络
    再学贝叶斯网络--TAN树型朴素贝叶斯算法
    再学贝叶斯网络--TAN树型朴素贝叶斯算法
    再学贝叶斯网络--TAN树型朴素贝叶斯算法
  • 原文地址:https://www.cnblogs.com/BigWrite/p/12456727.html
Copyright © 2011-2022 走看看