本文共 3576 字,大约阅读时间需要 11 分钟。
获得数据库的元数据:数据库的版本 连接字符串
package java616;import java.sql.*;public class MetaDbData { public static void main(String[] args) throws Exception { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=studentDB;integratedSecurity=true"; // 连接服务器和数据库 //String username = "sa"; //String password = "123456"; //加载驱动 Class.forName(driverName); //获得数据库连接 Connection connection = DriverManager.getConnection(dbURL); // Connection connection = DriverManager.getConnection(dbURL, username, password); //获得元数据 DatabaseMetaData metaData = connection.getMetaData(); //获得数据库名称 String databaseProductName = metaData.getDatabaseProductName(); System.out.println("数据库:"+databaseProductName); //获得数据库版本号 String databaseProductVersion = metaData.getDatabaseProductVersion(); System.out.println("数据库版本:"+databaseProductVersion); //获得数据库用户名 String userName = metaData.getUserName(); System.out.println("数据库登录用户名:"+userName); //获得数据库连接URL String jdbcUrl = metaData.getURL(); System.out.println("数据库连接字符串:"+jdbcUrl); //获得数据库驱动 String driverName1 = metaData.getDriverName(); System.out.println("数据库驱动名:"+driverName1); //获得数据库驱动版本号 String driverVersion = metaData.getDriverVersion(); System.out.println("数据库驱动版本号:"+driverVersion); }}
获得某个数据库的元数据:表名 字段名 字段数据类型
package java616;import java.sql.*;import java.util.HashMap;import java.util.Map;import java.util.Set;public class MetaDbTableData { public static void main(String[] args) throws SQLException, ClassNotFoundException { HashMapcomputer_mall = (HashMap ) getDatabaseNameToTableNameAndColumnName("studentDB"); Set tableNames = computer_mall.keySet(); System.out.println("一共有表:" + tableNames.size() + "张"); for (String tableName : tableNames) { System.out.println("===========================\r\n"); System.out.println("表名:" + tableName); // <字段名,类型> HashMap 集合 HashMap columnNames = (HashMap 字段名,类型>) computer_mall .get(tableName); Set columns = columnNames.keySet(); for (String column : columns) { System.out.println("字段名:" + column + " 类型:" + columnNames.get(column)); } System.out.println("===========================\r\n"); } } //获得元数据 public static Map getDatabaseNameToTableNameAndColumnName( String databaseName) throws SQLException, ClassNotFoundException { String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String url = "jdbc:sqlserver://localhost:1433; DatabaseName=studentDB;integratedSecurity=true"; String username = "sa"; String password = "123456"; Map tableNameMap = new HashMap<>(); // 加载驱动 Class.forName(driver); // 获得数据库连接 Connection connection = DriverManager.getConnection(url, username, password); // 获得元数据 DatabaseMetaData metaData = connection.getMetaData(); // 获得表信息 ResultSet tables = metaData.getTables(null, null, null, new String[] { "TABLE" }); while (tables.next()) { Map columnNameMap = new HashMap<>(); // 保存字段名 // 获得表名 String table_name = tables.getString("TABLE_NAME"); // 通过表名获得所有字段名 ResultSet columns = metaData .getColumns(null, null, table_name, "%"); // 获得所有字段名 while (columns.next()) { // 获得字段名 String column_name = columns.getString("COLUMN_NAME"); // 获得字段类型 String type_name = columns.getString("TYPE_NAME"); columnNameMap.put(column_name, type_name); } tableNameMap.put(table_name, columnNameMap); } return tableNameMap; }}
转载地址:http://zfqzi.baihongyu.com/