数据库元数据分析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= 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+" "); 34 list.add(name); 35 } 36 System.err.println(""); 37 while(rs.next()) 38 { 39 for(String s:list) 40 { 41 String value= rs.getString(s); 42 System.err.print(value+" "); 43 } 44 System.err.println(""); 45 }
原文地址:https://www.cnblogs.com/liuwt365/p/4114861.html