Java 在我的应用程序中显示表格查询

Java 在我的应用程序中显示表格查询,java,sql-server,Java,Sql Server,大家好,我正在制作一个应用程序,它可以访问MySQL和MsSQL数据库,并根据它访问的数据库打印出表,实现这一点的代码部分如下: Connection con = DriverManager.getConnection(dbUrl, userName,password); Statement stmt = con.createStatement(); ResultSet rs; if (driverCN.startsWith("com.mysql")) { // For MySQL

大家好,我正在制作一个应用程序,它可以访问MySQL和MsSQL数据库,并根据它访问的数据库打印出表,实现这一点的代码部分如下:

Connection con = DriverManager.getConnection(dbUrl, userName,password);
Statement stmt = con.createStatement();
ResultSet rs;

if (driverCN.startsWith("com.mysql")) {       // For MySQL.
rs = stmt.executeQuery("Show Tables");
    } else {                                  // For MsSQL
rs = stmt.executeQuery("??????");
        }
// Displays the remaining Database tables.
       System.out.println("\nThese are the remaining Database Tables:\n");
        while (rs.next()) {
            String db = rs.getString(1);
            System.out.println(db);
        }

现在我想知道的是,我如何使MsSQL也能工作,我要执行什么样的查询,结果会传递到我的结果集?(这非常适合MySQL数据库,我只是还没有MsSQL数据库来测试它。请提前感谢!

SQL Server 2005或2008:

SELECT * FROM information_schema.tables
SQL Server 2000:

SELECT * FROM sysobjects WHERE xtype='U'

SQL Server 2005或2008:

SELECT * FROM information_schema.tables
SQL Server 2000:

SELECT * FROM sysobjects WHERE xtype='U'
尝试:

尝试:


我认为不是这样……在2005年或2008年的情况下,表名将位于列table_NAME中,例如:因此,您不需要执行select*from仅选择table_NAME列。如果您在SQL Server 2000中,请检查sysobjects表的列以获得正确的列。最后,不要忘记接受答案以结束此问题我明白了。该公司将使用SQLServer2008,主要代码是清理数据库缓存表。这部分代码将显示其余的表。你有什么建议对SQL server和MySQL都有责任吗?我总是接受答案^ ^ ^(只需等待计时器用完),我不认为。。。在2005年或2008年的情况下,您的表名将位于table_NAME列中,例如:因此您不需要执行select*from,只选择table_NAME列。如果您使用的是SQL Server 2000,请检查sysobjects表的列以获得正确的列。最后,不要忘记接受答案以结束此问题;)我懂了。该公司将使用SQLServer2008,主要代码是清理数据库缓存表。这部分代码将显示其余的表。你有什么对SQL server和MySQL都有责任的建议吗?我总是接受答案^ ^(只需等待计时器用完)