java - 检查数据库结构是否正确

标签 java mysql jdbc

我从用户那里获取数据库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
  );

最佳答案

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

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

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

参见DatabaseMetaData的javadoc了解其他可用方法。

关于java - 检查数据库结构是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54676187/

相关文章:

java - 如何为开发和生产环境使用不同的 META-INF/context.xml 文件

session - 在tomcat领域获取 session 属性

java - Netezza 流式处理结果集

java - 如何在 Kotlin 注释中声明数组值?

java - 保留堆的镜像并在执行某些方法后返回它

java - 使用 perf 进行分析时,JMH 给出 <not counted> 值

php - 导出 MySQL 输出文件 csv 时如何在单个查询中同时转义反斜杠和双引号

MySQL:从 MyISAM 转换为 InnoDB 使查询更快......?

java - "Find usages"作为 IntelliJ 插件的功能

javascript - 具有建议/推荐功能的视频网站