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"));
                }

            }            

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM