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