java读取mysql中的表_java-如何从数据库中获取所有表名?

这篇博客讨论了如何使用Java的JDBC连接从MySQL数据库中获取所有表名。作者遇到问题,无法通过getTables()方法正确获取,社区提供了多种解决方案,包括使用DatabaseMetaData的getTables()方法,调整表名模式,处理数据库大小写规则等。
摘要由CSDN通过智能技术生成

java-如何从数据库中获取所有表名?

我想从数据库架构中检索所有表名,并在可能的情况下,从指定的前缀开始获取所有表。

我尝试使用JDBC的connection.getMetaData().getTables(),但它根本不起作用。

Connection jdbcConnection = DriverManager.getConnection("", "", "");

DatabaseMetaData m = jdbcConnection.getMetaData();

ResultSet tables = m.getTables(jdbcConnection.getCatalog(), null, "TAB_%", null);

for (int i = 0; i < tables.getMetaData().getColumnCount(); i++) {

System.out.println("table = " + tables.getMetaData().getTableName(i));

}

有人可以帮我吗?

6个解决方案

120 votes

您需要遍历ResultSet调用DatabaseMetaData::getTables。

这是来自java2s.com的示例:

DatabaseMetaData md = conn.getMetaData();

ResultSet rs = md.getTables(null, null, "%", null);

while (rs.next()) {

System.out.println(rs.getString(3));

}

第3列是DatabaseMetaData::getTables(请参阅DatabaseMetaData::getTables的文档)。

Peter Lang answered 2019-12-29T19:37:30Z

26 votes

public void getDatabaseMetaData()

{

try {

DatabaseMetaData dbmd = conn.getMetaData();

String[] types = {"TABLE"};

ResultSet rs = dbmd.getTables(null, null, "%", types);

while (rs.next()) {

System.out.println(rs.getString("TABLE_NAME"));

}

}

catch (SQLException e) {

e.printStackTrace();

}

}

Rohit answered 2019-12-29T19:37:46Z

5 votes

在您的示例中,问题是在DatabaseMetaData的getTables函数中传递了表名模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值