查询mysql库中所有表名的问题。。。

tx183584 2010-09-23 11:28:21
 sql="show tables";
rs=statement.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2));
}

库中明明有三个表,但是只有System.out.println(rs.getString(1));时,才会输出第一个表名,其它两个无效。。。
...全文
2015 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vic_zhaowei 2012-10-29
  • 打赏
  • 举报
回复
+-------------------+
| Tables_in_vplat4j |
+-------------------+
| Grain |
| Organization |
| PlatSystemLog |
| Role |
| RoleOrGrain |
| RoleOrOrg |
| UserInfo |
| UserInfoOrOrg |
| UserOrRole |
+-------------------+

执行完是这样的结构。

rs.getString(1) 才对了。
氧气网航 2010-09-24
  • 打赏
  • 举报
回复
帅哥,你在MYSQL里执行show tables,出来的结果是不是只有一列,你为什么要给他写rs.getString(1),故意和自己过不去?
[Quote=引用楼主 tx183584 的回复:]
Java code
sql="show tables";
rs=statement.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2));
}

库中明……
[/Quote]
菖蒲老先生 2010-09-24
  • 打赏
  • 举报
回复
con = DriverManager.getConnection("jdbc:mysql://localhost/mysql?user=root&password=");

此处的mysql要换成你所有查询的db名.
tx183584 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tx183584 的回复:]

引用 3 楼 flagiris 的回复:

引用 2 楼 tx183584 的回复:
引用 1 楼 flagiris 的回复:

show tables;

执行结果只有一列吧,怎么会有rs.getString(2)?

千真万确有三个表存在。。。

不会啊,你用的是mysql吧,我刚搭了环境试了试,没问题。
还有rs.getString(2)会报错的。

Java ……
[/Quote]
弄错了。对象不同,不过,你输出的这些表我在电脑上试了,输出的表并没有我的
tx183584 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 flagiris 的回复:]

引用 2 楼 tx183584 的回复:
引用 1 楼 flagiris 的回复:

show tables;

执行结果只有一列吧,怎么会有rs.getString(2)?

千真万确有三个表存在。。。

不会啊,你用的是mysql吧,我刚搭了环境试了试,没问题。
还有rs.getString(2)会报错的。

Java code

import java.sql.C……
[/Quote]

rs = statment.executeQuery();这句会报错的、、、
菖蒲老先生 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tx183584 的回复:]
引用 1 楼 flagiris 的回复:

show tables;

执行结果只有一列吧,怎么会有rs.getString(2)?

千真万确有三个表存在。。。
[/Quote]
不会啊,你用的是mysql吧,我刚搭了环境试了试,没问题。
还有rs.getString(2)会报错的。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestMySql {

public static void main(String[] args) {

Connection con = null;
java.sql.PreparedStatement statment = null;
ResultSet rs = null;

try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager
.getConnection("jdbc:mysql://localhost/mysql?user=root&password=");
con.setAutoCommit(false);
String sql = "show tables;";

statment = con.prepareStatement(sql);
rs = statment.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
statment.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

打印结果:

columns_priv
db
func
help_category
help_keyword
help_relation
help_topic
host
proc
procs_priv
tables_priv
time_zone
time_zone_leap_second
time_zone_name
time_zone_transition
time_zone_transition_type
user
tx183584 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 flagiris 的回复:]

show tables;

执行结果只有一列吧,怎么会有rs.getString(2)?
[/Quote]
千真万确有三个表存在。。。
菖蒲老先生 2010-09-23
  • 打赏
  • 举报
回复
show tables;

执行结果只有一列吧,怎么会有rs.getString(2)?

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧