首页 > 代码库 > 数据库元数据分析Demo

数据库元数据分析Demo

核心类:DatabaseMetaData、ResultSetMetaData


1
System.err.println("**********************************"); 2 Connection conn=DataSourceUtils.getDataSource().getConnection(); 3 DatabaseMetaData dbmd=conn.getMetaData();//获取结果集conn的信息,如字段名,字段数等 4 ResultSet set= dbmd.getCatalogs();//获取所有数据库名称 5 while(set.next()) 6 { 7 String name=set.getString("TABLE_CAT"); 8 System.err.println("=="+name); 9 }10 System.err.println("=================================");11 String dbname= dbmd.getDatabaseProductName();12 System.err.println(dbname);13 System.err.println("=================================");14 //前两个参数如果为null,则为默认连接的数据库,如果指定数据库,则为指定数据库的表;15 //第四个参数如果为null,tables,views都会查询到;可以指定查找tables或者views或者全部16 ResultSet set2= dbmd.getTables("jdbcdb", "jdbcdb", null, new String[]{"VIEW"});17 while (set2.next()) {18 String name= set2.getString("TABLE_NAME");19 System.err.println("****"+name);20 }21 System.err.println("=================================");22 Statement stmt =conn.createStatement();23 stmt.execute("use jdbcdb");//转到jdbc数据库中24 String sql="select * from users ";25 ResultSet rs= stmt.executeQuery(sql);26 ResultSetMetaData rsdaData= http://www.mamicode.com/rs.getMetaData();//获取结果集rs的信息27 int count= rsdaData.getColumnCount();//获取总行数28 System.err.println(count);29 List<String> list=new ArrayList<String>();30 for(int i=0;i<count;i++)31 {32 String name=rsdaData.getColumnName(i+1);//获取行名称(数据库中的index是从1开始的)33 System.err.print(name+"\t\t");34 list.add(name);35 }36 System.err.println("");37 while(rs.next())38 {39 for(String s:list)40 {41 String value=http://www.mamicode.com/ rs.getString(s);42 System.err.print(value+"\t\t");43 }44 System.err.println("");45 }

 

数据库元数据分析Demo