浅谈 JDBC 元数据

 更新时间:2017年09月28日 08:40:11   作者:Infaraway  
这篇文章主要介绍了JDBC元数据的相关内容,涉及一些获取数据源各种信息的方法,具有一定参考价值,需要的朋友可以了解下。

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):指示是否自动为指定列进行编号,这样这些列仍然是只读的。

总结

以上就是本文浅谈JDBC 元数据的全部内容,希望对大家有所帮助。欢迎大家参阅本站其他专题,有什么问题可以随时留言,小编会及时回复大家的。感谢大家对脚本之家网站的支持!

相关文章

  • Java synchronized锁升级jol过程详解

    Java synchronized锁升级jol过程详解

    这篇文章主要介绍了Java synchronized锁升级jol过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java实现本地缓存的方式汇总

    Java实现本地缓存的方式汇总

    引入缓存,主要用于实现系统的高性能,高并发,这篇文章主要介绍了Java实现本地缓存的几种方式,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • java制作仿微信录制小视频控件

    java制作仿微信录制小视频控件

    这篇文章主要介绍了java制作仿微信录制小视频控件的代码,录制小视频非常方便,有需要的小伙伴可以参考下。
    2015-04-04
  • Spring中依赖注入(DI)几种方式解读

    Spring中依赖注入(DI)几种方式解读

    这篇文章主要介绍了Spring中依赖注入(DI)几种方式解读,构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖,需要的朋友可以参考下
    2024-01-01
  • 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)

    解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)

    这篇文章主要介绍了解决java编译错误的相关资料,主要解决 程序包javax.servlet不存在javax.servlet.*的问题,需要的朋友可以参考下
    2017-08-08
  • JAVA SFTP文件上传、下载及批量下载实例

    JAVA SFTP文件上传、下载及批量下载实例

    本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • SpringCloud-Spring Boot Starter使用测试及问题小结

    SpringCloud-Spring Boot Starter使用测试及问题小结

    Spring Boot Starter 是在 SpringBoot 组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架,这篇文章主要介绍了SpringCloud-Spring Boot Starter使用测试,需要的朋友可以参考下
    2022-07-07
  • Python实现filter函数实现字符串切分

    Python实现filter函数实现字符串切分

    这篇文章主要介绍了Python实现filter函数实现字符串切分,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java 8中HashMap的底层原理解析

    Java 8中HashMap的底层原理解析

    HashMap作为Java中常用的数据结构之一,在JDK 1.8中经过了一系列的优化和改进,深入理解其底层原理,包括哈希算法、数组与链表结构、红黑树的引入等,有助于更好地使用和理解HashMap的性能特性,这篇文章主要介绍了Java 8中HashMap的底层原理,需要的朋友可以参考下
    2023-11-11
  • Spring Bean创建的另一条捷径

    Spring Bean创建的另一条捷径

    这篇文章主要为大家介绍了Spring Bean创建的另一条方法捷径详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论