当前位置: 代码迷 >> Sql Server >> 获取了连接conn,怎么获取这个连接下数据库中所有表的名字
  详细解决方案

获取了连接conn,怎么获取这个连接下数据库中所有表的名字

热度:37   发布时间:2016-04-27 18:43:36.0
获取了连接conn,如何获取这个连接下数据库中所有表的名字?
获取了连接conn,如何获取这个连接下数据库中所有表的名字?我的连接支持mssql,oracle,db2,mysql,sysbase。

代码示例,sql示例都可以,我在网上没有搜索到相关具体的信息,说的都是方向之类的,没有具体的示例,大家帮忙解决下。

------解决方案--------------------
select name from sysobjects where xtype='U'?
------解决方案--------------------
SQL code
rch_Answertest1userTb_Outputstt2abgztamsitemtt3
------解决方案--------------------
select * from information_schema.columns where table_name='表名'

跟这个差不多吧,我再去找找!
------解决方案--------------------
sql server:
SQL code
select name from sysobjects where xtype='U'
------解决方案--------------------
Set Recordset = Conn.Execute("SELECT * FROM sysobjects WHERE xtype='U'")
------解决方案--------------------
从schema信息里读也可以.
------解决方案--------------------
select name from sysobjects where xtype='U'? 这个好像是mssql的,oracle的不支持!
------解决方案--------------------
select name from sysobjects where type='U'
------解决方案--------------------
oracle的: 

获取所有用户表:
SELECT TABLE_NAME FROM USER_ALL_TABLES;
获取所有表(包括系统)
SELECT TABLE_NAME FROM ALL_ALL_TABLES;

在网上查的。嘻嘻!
------解决方案--------------------
别的没有数据库,不好实践,就算啦!
------解决方案--------------------
select table_name from information_schema.tables where table_type='base table'
------解决方案--------------------
如果支持多种数据库的话,可以考虑利用jdbc来帮助解决,这样可以屏蔽掉很多的具体数据库细节。
Java code
    /**     * 简要的显示一下     * */    public void showTables(){        Connection conn = null;        ResultSet rst = null;        DatabaseMetaData dbmd = null;        String[] types = {"TABLE"}; // 类型:表        try{            conn = ConnectionFactory.getConnection(); // 不同数据库返回不同的Connection            dbmd = conn.getMetaData();            // String catalog,String schemaPattern,String tableParten,String[] types            // null 代表所有            rst = dbmd.getTables(null,null ,null , types);            while(rst.next()){                System.out.println(rst.getString("TABLE_NAME"));            }                }catch(SQLException sqle){            sqle.printStackTrace();        }    }
------解决方案--------------------
conn = ConnectionFactory.getConnection(); // 不同数据库返回不同的Connection

中的ConnectionFactory从哪里来?
------解决方案--------------------
ConnectionFactory是哪个jar包的类?
------解决方案--------------------
Java code
package test;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import com.developercreations.cranium.das.DCDataArchiveSystem;public class Test {    public static void main(String args[]){                    String JDBC_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";         String DATABASE_URL = "jdbc:microsoft:sqlserver://192.168.2.14:1433";         Connection connection;         Statement statement;                 try {             Class.forName(JDBC_DRIVER);             connection= DriverManager.getConnection(DATABASE_URL,"sa","dc9rulez");             statement=connection.createStatement();            //String sql2="select db_name()   as   databasename ";            //DatabaseMetaData   md=connection.getMetaData();              //ResultSet   rs=statement.executeQuery(sql2);             // String s=md.getURL();            //System.out.println("s:"+s);            DatabaseMetaData dbmd=connection.getMetaData();            String[] types={"TABLE"};                        ResultSet rs1=dbmd.getTables(null,null,"spt_monitor",types);                      while(rs1.next())  {                    System.out.println("rs.getString(1)   =   "   +   rs1.getString(1)+" "+rs1.getString(2)+" "+rs1.getString(3));            }            System.out.println("\n\n");                          //ResultSet rs=statement.executeQuery("select DAS_Blob_FILE_CONTENT from "+"\""+"dcImaging"+"\""+"."+"\""+"dbo"+"\""+".TABLE_DAS_Blob where "+"\""+"DAS_INT_FILE_SIZE"+"\""+"=111");              String[] types2={"TABLE"};                                    ResultSet rs2=dbmd.getColumns(null, null, "TABLE_dc_abl_types", null);                        while(rs2.next()){                 System.out.println(rs2.getString(1)+" "+rs2.getString(2)+" "+rs2.getString(3)+" "+rs2.getString(4)+"       "+rs2.getString(6));                       }                    }catch(Exception e){            e.printStackTrace();        }    }}
  相关解决方案