Java学习笔记____JDBC元数据操作

JDBC元数据操作____表的获取(MySQL)

目录

## 相关方法:.getTables()

## 返回结果集ResultSet


## 相关方法:.getTables()

      Wrapper接口下的DatabaseMetaData接口提供了getTables()方法(参照源码1521)
      .getTables(p1, p2, p3, p4)方法:
            p1:数据库名
            p2:模式(数据库的登录名)
            p3:表名,一般为null
            p4:类型标准(数组格式),一般使用"TABLE",即获取所有类型为TABLE的表            
      [注意]:
            1. 参数p1可以直接使用数据库连接实例对象中的getCatalog()方法返回的ResultSet值填充,也可以不填/null
            2. 若针对于Oracle数据库,参数p1对应数据库实例,参数p2必须大写,否则将无法获取到相应的数据
            3. 参数p3若想获取所有表,可以直接设置为null,若设置为特定的表名称,则将返回该表的具体信息,相当于过滤条件
            4. 参数p4备选类型:"TABLE"/"VIEW"/"SYSTEM TABLE"/"GLOBAL TEMPORARY"/
                "LOCAL TEMPORARY"/"ALIAS"/"SYNONYM"

    //p1使用连接对象.getCatalog()、p2指定数据库登录名方式
    ResultSet tablers1 = metaData.getTables(conn.getCatalog(), "root", null, new String[]{"TABLE"});

    //p1、p2 直接指定null方式
    ResultSet tablers2 = metaData.getTables(null, null, null, new String[]{"TABLE"});  

## 返回结果集ResultSet:

      此方法返回一个ResultSet对象,其中包含了表的相关信息:共10列
      TABLE_CAT                     String     表类别          (可为 null)
      TABLE_SCHEM                String     表模式          (可为 null)
      TABLE_NAME                  String     表名称
      TABLE_TYPE                    String     表类型
      REMARKS                        String     表的解释性注释
      TYPE_CAT                        String     类型的类别   (可为 null)
      TYPE_SCHEM                  String     类型模式      (可为 null)
      TYPE_NAME                    String     类型名称      (可为 null)
      SELF_REFERENCING_COL_NAME String   有类型表指定 "identifier" 列的名称(可为 null)
      REF_GENERATION          String
      可以通过此方法获取表中相关内容,以便后续处理操作

  示例:将全大写表名转为小写存储

    //准备数据元信息
    Properties props =new Properties();
    props.put("remarksReporting","true");
    props.put("user", userName);
    props.put("password", passWord);
    //获取连接对象
    Connection connection = java.sql.DriverManager.getConnection(url, props);

    //获取元数据操作对象
    DatabaseMetaData metaData = connection.getMetaData();

    //获取所有表名
    ResultSet tablers = metaData.getTables(null, null, null, new String[]{"TABLE"}); 
 
    List<Table> list=new ArrayList<Table>();
    while(tablers.next()){
        String tableName=tablers.getString("TABLE_NAME");
        System.out.println(tableName);
        //判断 表名为全大写 ,则转换为小写
        if(tableName.toUpperCase().equals(tableName))
        {
            table.setName(tableName.toLowerCase());
        }else
        {
            table.setName(tableName);
        }
        list.add(table );
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值