首页 > 解决方案 > 检查数据库结构是否正确

问题描述

我从用户那里获取数据库 url、用户、密码信息

Connection db = DriverManager.getConnection(url, user, pass);

稍后我将动态地对该数据库执行操作。显然我也捕获了错误,但是在我第一次连接到数据库时,我想验证它是否具有我将使用的正确表和列(更容易在开始时抛出错误“此数据库未正确设置”而不是做很多事情,然后找出数据库没有正确设置)。

我怎样才能验证这一点?

例如,必须检查它是否具有包含表名和列名以及类型的结构,例如

create table user (
  username varchar(16) not null,
  primary key (username)
  );
create table foo (
  id int unsigned auto_increment not null,
  one int,
  two tinytext not null,
  three int
  );

标签: javamysqljdbc

解决方案


要使用 JDBC 以与数据库无关的方式查询表及其列,请调用conn.getMetaData().

然后用于getTables(String catalog, String schemaPattern, String tableNamePattern, String\[\] types)查询表信息。

用于getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)查询列信息。

DatabaseMetaData有关其他可用方法,请参见 javadoc 。


推荐阅读