欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

浅谈 JDBC 元数据

时间:2021-02-09 14:32:43|栏目:JAVA代码|点击:

Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信息。根据这些信息,JDBC可以访问一个实现事先并不了解的数据库。

获取这些信息的方法都是在DatabaseMetaData类的对象上实现的,而DataBaseMetaData对象是在Connection对象上获得的。

DatabaseMetaData 类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息:

getURL():返回一个String类对象,代表数据库的URL。

getUserName():返回连接当前数据库管理系统的用户名。

isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。

getDatabaseProductName():返回数据库的产品名称。

getDatabaseProductVersion():返回数据库的版本号。

getDriverName():返回驱动驱动程序的名称。

getDriverVersion():返回驱动程序的版本号。

/**
   * 查询特定数据库中的所有表
   * @param connection 数据库连接对象
   * @return 数据库表的list
   */
  public static List<String> getTables(Connection connection){
    try {
      List<String> tableList = new ArrayList<>();
      DatabaseMetaData metaData = connection.getMetaData();
      ResultSet resultSet = metaData.getTables(null, null, null, new String[]{"TABLE"});
      while (resultSet.next()){
        tableList.add(resultSet.getString(3));
      }
      return tableList;
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return null;
  }

可用于获取关于 ResultSet 对象中列的类型和属性信息的对象:

getColumnName(int column):获取指定列的名称

getColumnCount():返回当前 ResultSet 对象中的列数。

getColumnTypeName(int column):检索指定列的数据库特定的类型名称。

getColumnDisplaySize(int column):指示指定列的最大标准宽度,以字符为单位。

isNullable(int column):指示指定列中的值是否可以为 null。

isAutoIncrement(int column):指示是否自动为指定列进行编号,这样这些列仍然是只读的。

总结

上一篇:详解JAVA Stream流

栏    目:JAVA代码

下一篇:Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍

本文标题:浅谈 JDBC 元数据

本文地址:http://www.codeinn.net/misctech/59761.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有