“如何执行MySQL查询”;展示表格&引用;在Java程序中。。?

“如何执行MySQL查询”;展示表格&引用;在Java程序中。。?,java,mysql,Java,Mysql,我是Java和MySQL的新手。如果我的问题看起来很傻,请原谅,我想知道答案。。。 我已经阅读了论坛上的许多文章和问题,但我没有看到我的问题的相关答案。。。 也就是说,我用Java编写了一个switch语句,如果我按1,我想显示数据库中可用表的列表(即进入案例1并执行查询“showtables;”) 在MySQL控制台中,使用相同的查询很容易检查可用表。但我想知道“showtables;”查询或类似的查询是否可以在Java程序中执行。。。 下面是我的代码的一个示例片段 Connection co

我是Java和MySQL的新手。如果我的问题看起来很傻,请原谅,我想知道答案。。。 我已经阅读了论坛上的许多文章和问题,但我没有看到我的问题的相关答案。。。 也就是说,我用Java编写了一个switch语句,如果我按1,我想显示数据库中可用表的列表(即进入案例1并执行查询“showtables;”) 在MySQL控制台中,使用相同的查询很容易检查可用表。但我想知道“showtables;”查询或类似的查询是否可以在Java程序中执行。。。 下面是我的代码的一个示例片段

Connection con=null;
String url = "jdbc:mysql://localhost:3306/giftson";
String dbName = "giftson";
String userName = "root";
String password = "password";
con=DriverManager.getConnection(url,userName,password);
Statement st=con.createStatement();
//String query;
Statement st=con.createStatement();
System.out.println("\tDatabase Connection for Various Operations");
System.out.println("\n1. Show list of tables\n2. Show contents of Table\n3. Create New Table\n4. Insert into table\n5. Update Table\n6. Delete From Table\n7. Exit\n");
System.out.println("Enter your option Number  ");
DataInputStream dis=new DataInputStream(System.in);
int ch=Integer.parseInt(dis.readLine());
switch(ch)
{
    case 1:
        System.out.println(" You have selected to Show list of available tables");
        //ResultSet rs=st.executeQuery("Show tables");
        //while(rs.next())
        //{
        //    System.out.println("List of Tables\n" +rs.getString("?????"));
        //}
        break;
}
根据上面的代码, 如果在ResultSet中执行查询,如何打印while循环中的值。。? 在rs.getString()中;我们只能将列索引或列标签作为参数传递,但如何获取表列表。。。 我应该在打印报表中输入什么来代替“??”呢。。。? 请帮助我,记住你是在为初学者解释。。。
提前谢谢

我们可以使用控制台命令

DatabaseMetaData meta=getMetaData();
在下面的代码中,显示了获取表列表的多种方法(但我知道了两种方法)

        DatabaseMetaData meta = con.getMetaData();
        ResultSet rs1 = meta.getTables(null, null, null,new String[] {"TABLE"});
        ResultSet rs2 = meta.getTables(null, null,"%", null);
        System.out.println("One way of Listing Tables");
        while (rs1.next())
        {
        System.out.println(rs1.getString("TABLE_NAME"));
        }
        System.out.println("Another way of Listing Tables");
        while(rs2.next())
        {
        System.out.println(rs2.getString(3));                
        }

一个小例子是

String tableNamePattern  = "%_Assessment_" + session + "_" + year;
DatabaseMetaData databaseMetaData = conn.getMetaData();
ResultSet rs = databaseMetaData.getTables(null, null, tableNamePattern, 
                                      null);
while(rs.next()) {
String tableName = rs.getString("TABLE_NAME");
...
}

检查

查看并感谢您,我会尝试一下……为什么不取消注释这些行并首先尝试呢?连接对象有一个方法“getMetaData()”,它可以为您提供所需的信息。它可能会做你想做的。@nablex非常感谢,这解决了我的问题。。