• 数据库元数据分析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 }
  • 相关阅读:
    3089:爬楼梯
    7592:求最大公约数问题
    JVM中内存回收深入分析,各种垃圾收集器
    PKU 1064 Cable master
    【面试&笔试】ASP.NET的相关问题
    1027. Colors in Mars (20) PAT
    DB_WRITER_PROCESSES与LOG_ARCHIVE_MAX_PROCESSES
    fedora下体验gentoo安装
    一个整数数组里面,除了两个数之外,其他的数字都出现了两次,写一个程序找出这两个数
    [置顶] export命令-linux
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4114861.html
Copyright © 2020-2023  润新知