获取了连接conn,如何获取这个连接下数据库中所有表的名字?
获取了连接conn,如何获取这个连接下数据库中所有表的名字?我的连接支持mssql,oracle,db2,mysql,sysbase。
代码示例,sql示例都可以,我在网上没有搜索到相关具体的信息,说的都是方向之类的,没有具体的示例,大家帮忙解决下。
[解决办法]
select name from sysobjects where xtype='U'?
[解决办法]
rch_Answertest1userTb_Outputstt2abgztamsitemtt3
[解决办法]
select * from information_schema.columns where table_name='表名'
跟这个差不多吧,我再去找找!
[解决办法]
sql server:
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来帮助解决,这样可以屏蔽掉很多的具体数据库细节。
/** * 简要的显示一下 * */ 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包的类?
[解决办法]
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(); } }}
[解决办法]
--所有的表名select name from sysobjects where xtype='U' order by name--或--所有的表名select table_name from information_schema.tables order by table_name