zoukankan      html  css  js  c++  java
  • JDBC 元数据 (DatabaseMetaData,ResultSetMetaData )


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

     

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

    • getURL():返回一个String类对象,代表数据库的URL。
    • getUserName():返回连接当前数据库管理系统的用户名。
    • isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。
    • getDatabaseProductName():返回数据库的产品名称。
    • getDatabaseProductVersion():返回数据库的版本号。
    • getDriverName():返回驱动驱动程序的名称。
    • getDriverVersion():返回驱动程序的版本号。
     1     /**
     2      *  查询特定数据库中的所有表
     3      * @param connection 数据库连接对象
     4      * @return 数据库表的list
     5      */
     6     public static List<String> getTables(Connection connection){
     7         try {
     8             List<String> tableList = new ArrayList<>();
     9             DatabaseMetaData metaData = connection.getMetaData();
    10             ResultSet resultSet = metaData.getTables(null, null, null, new String[]{"TABLE"});
    11             while (resultSet.next()){
    12                 tableList.add(resultSet.getString(3));
    13             }
    14             return tableList;
    15         } catch (SQLException e) {
    16             e.printStackTrace();
    17         }
    18         return null;
    19     }

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

    • getColumnName(int column):获取指定列的名称
    • getColumnCount():返回当前 ResultSet 对象中的列数。
    • getColumnTypeName(int column):检索指定列的数据库特定的类型名称。
    • getColumnDisplaySize(int column):指示指定列的最大标准宽度,以字符为单位。
    • isNullable(int column):指示指定列中的值是否可以为 null。
    • isAutoIncrement(int column):指示是否自动为指定列进行编号,这样这些列仍然是只读的。
  • 相关阅读:
    Spring@Profile注解
    day 32 子进程的开启 及其用法
    day 31 udp 协议SOCK_DGRAM
    day 30 客户端获取cmd 命令的步骤
    day 29 socket 理论
    day 29 socket 初级版
    有关 组合 继承
    day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
    新式类和经典类的区别
    day 28 hasattr getattr serattr delattr 和带__内置__ 类的内置方法
  • 原文地址:https://www.cnblogs.com/infaraway/p/6509342.html
Copyright © 2011-2022 走看看