111111
精灵王
精灵王
  • 注册日期2010-12-08
  • 发帖数640
  • QQ
  • 火币1103枚
  • 粉丝120
  • 关注75
  • 社区明星
阅读:3124回复:0

使用DatabaseMetaDate获取数据库信息-JSP教程,数据库相关

楼主#
更多 发布于:2010-12-15 12:49
import java.sql.*;
public class getdbinfo
{
  public getdbinfo()
  {
  }

 public static void main(string[] args)
  {
  try{
    class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver").newinstance();
    string url="jdbc:microsoft:sqlserver://gaoxiang:1433;databasename=master";
    string user="daryl715";
    string pass="1234";
    string s;
    connection con=drivermanager.getconnection(url,user,pass);
        databasemetadata dbmd=con.getmetadata();
    s = dbmd.getdrivername();
    system.out.println("驱动程式的名称是: "+s);
    system.out.println(" ");

   s = dbmd.getdatabaseproductname();
    system.out.println ("数据库名称是:"+s);
    system.out.println(" ");

   resultset rs = dbmd.getschemas();
    system.out.println("模式名有:");
    while(rs.next())
      system.out.print("  "+rs.getstring(1));
      system.out.println();
      
     s = dbmd.getsqlkeywords();
    system.out.println("sql中的关键词为: "+s);
    system.out.println(" ");

   int max=dbmd.getmaxcolumnnamelength();
    system.out.println ("列名的最大长度能是:"+max);
    system.out.println(" ");

   max = dbmd.getmaxtablenamelength();
    system.out.println ("表名的最大长度能是:"+max);
    system.out.println(" ");

   max = dbmd.getmaxcolumnsinselect();
    system.out.println ("一个select 子句所能返回的最多列数列名的最大长度可是是:"+max);
    system.out.println(" ");

   max = dbmd.getmaxtablesinselect();
    system.out.println ("一个select语句最多能访问多少个表:"+max);
    system.out.println(" ");


   max = dbmd.getmaxcolumnsintable();
    system.out.println ("表中允许的最多列数:"+max);
    system.out.println(" ");

   max = dbmd.getmaxconnections();
    system.out.println ("并发访问的用户个数:"+max);
    system.out.println(" ");

   max = dbmd.getmaxstatementlength();
    system.out.println ("sql语句最大允许的长度:"+max);
    system.out.println(" ");

   s = dbmd.getnumericfunctions();
    system.out.println("数据库的所有数学函数的列表: "+s);
    system.out.println(" ");

   s = dbmd.getstringfunctions();
    system.out.println("数据库的所有字符串函数的列表: "+s);
    system.out.println(" ");

   s = dbmd.getsystemfunctions();
    system.out.println("数据库的所有系统函数的列表: "+s);
    system.out.println(" ");

   s = dbmd.gettimedatefunctions();
    system.out.println("数据库的所有日期时间函数的列表: "+s);
    system.out.println(" ");

   rs = dbmd.gettypeinfo();
    while(rs.next())
      {
        system.out.print(" 数据类型名:"+rs.getstring(1));
        system.out.print("  数据类型:"+ rs.getstring(2));
        system.out.print("  精度:"+   rs.getstring(3));
        system.out.println("  基数:"+   rs.getstring(18));
      }
      system.out.println(" ");

   s = dbmd.geturl();
    system.out.println("此数据库的url: "+s);
    system.out.println(" ");

   s = dbmd.getusername();
    system.out.println("此数据库的用户: "+s);
    system.out.println(" ");

   string [ ] t = { "table", "view" };
    rs = dbmd.gettables(null, "hr", "%", t);
    while(rs.next()){
      system.out.print("目录名:"+rs.getstring(1));
      system.out.print(" 模式名:"+rs.getstring(2));
      system.out.print(" 表名:"+rs.getstring(3));
      system.out.print(" 表的类型:"+rs.getstring(4));
      system.out.println(" 注释:"+rs.getstring(5));
      }
      system.out.println(" ");

   rs = dbmd.getprimarykeys(null, "hr","employees");
    while(rs.next()){
      system.out.print("目录名:"+rs.getstring(1));
      system.out.print(" 模式名:"+rs.getstring(2));
      system.out.print(" 表名:"+rs.getstring(3));
      system.out.print(" 列名顺序号:"+rs.getstring(4));
      system.out.print(" 列名顺序号:"+rs.getstring(5));
      system.out.println(" 主键名:"+rs.getstring(6));
      }
      system.out.println(" ");

    rs = dbmd.gettabletypes();
     system.out.println(" 表的类型有:");
     while(rs.next())
       system.out.print("  "+ rs.getstring(1));
       system.out.println();
       system.out.println(" ");

    rs = dbmd.getcolumns(null, "hr", "employees", "%");
     system.out.println(" 表名 "+" 列名 "+"  数据类型"+" 本地类型名"+" 列的大小"+ " 小数位数"+" 数据基数"+" 是否可空"+" 索引号");
     while(rs.next()){
      system.out.print(rs.getstring(3)+" ");
      system.out.print(rs.getstring(4)+" ");
      system.out.print(rs.getstring(5)+" ");
      system.out.print(rs.getstring(6)+" ");
      system.out.print(rs.getstring(7)+" ");
      system.out.print(rs.getstring(9)+" ");
      system.out.print(rs.getstring(10)+" ");
      system.out.print(rs.getstring(11)+" ");
      system.out.println(rs.getstring(17)+" ");
      }
      system.out.println(" ");

     rs = dbmd.getindexinfo(null, "hr", "employees", false, false);
      system.out.println(" 表名"+" 索引名"+" 索引类型"+" 索引列名"+" 索引顺序"+ " 小数位数"+" 数据基数"+" 是否可空"+" 索引号");
      while(rs.next()){
      system.out.print(rs.getstring(3)+" ");
      system.out.print(rs.getstring(6)+" ");
      system.out.print(rs.getstring(7)+" ");
      system.out.print(rs.getstring(9)+" ");
      system.out.println(rs.getstring(10)+" ");
      }
      system.out.println(" ");
    
    rs.close();
       con.close();
    }
    catch(exception e){system.out.println(e);}
    new getdbinfo();
  }
}



喜欢0 评分0
游客

返回顶部