Java 学习之路 之 分析数据库信息(五十七)

大部分时候我们只需要对指定数据表进行插入(C)、查询(R)、修改(U)、删除(D)等 CRUD 操作;但在某些时候,我们需要动态地获取数据库的相关信息,例如数据库里的数据表信息、列信息。除此之外,如果希望在程序中动态地利用底层数据库所提供的特殊功能,则都需要动态分析数据库相关信息。

1,使用 DatabaseMetaData 分析数据库信息

JDBC 提供了DatabaseMetaData 来封装数据库连接对应数据库的信息,通过 Connection 提供的 getMetaData() 方法就可以获取数据库对应的 DatabaseMetaData 对象。

DatabaseMetaData 接口通常由驱动程序供应商提供实现,其目的是让用户了解底层数据库的相关信息。使用该接口的目的是发现如何处理底层数据库,尤其是对于试图与多个数据库一起使用的应用程序——因为应用程序需要在多个数据库之间切换,所以必须利用该接口来找出底层数据库的功能,例如,调用 supportsCorrelatedSubqueries() 有法查看是否可以使用关联子查询,或者调用 supportsBatch Updates() 方法查看是否可以使用批量更新。

许多 DatabaseMetaData 方法以 ResultSet 对象的形式返回查询信息,然后使用 ResultSet 的常规方法(如 getString() 和 getlnt())即可从这些 ResultSet 对象中获取数据。如果查询的信息不可用,则将返回一个空 ResultSet 对象。

DatabaseMetaData 的很多方法都需要传入一个 xxxPattern 模式字符串,这里的 xxxPattern 不是正则表达式,而是 SQL 里的模式字符串

你可能感兴趣的:(java,分析数据库信息)