jdbc 查询 MySQL 获取表名: 用“show tables”命令。在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来。其中“db”是指你的数据库的名称,比如说Tables_in_productdb。 获取某个表的字段: 用“desc tablename”命令。取得方式和上面类似。 此外,还可用MySQL数据库系统表取得,在information_schema库中有系统中的一些基础性表,比如说TABLES\COLUMNS。但一般情况下,程序只访问本库中的表,所以不建议采用这种方式取得。 2、SQLSERVER SQLSERVER中也有数据库系统表,有相应权限时可以直接访问。 获取表名: 通过查询sysobjects表取得,它记录了系统中的对象。具体的访问方式如下: select name from sysobjects where xtype='U' 其中name得到的即表名。 XType='U':表示所有用户表; XType='S':表示所有系统表。 获取某个表的字段: SystemColumns表记录了数据库中的列信息。具体调用方式: Select Name from SysColumns Where id=Object_Id('test') 3、ORACLE 获取表名: Oracle的user_talbes用于记录了用户表信息。 select * from user_tables 获取某个表的字段: USER_TAB_COLS中记录了用户表的列信息。 SELECT USER_TAB_COLS.TABLE_NAME as 表名, USER_TAB_COLS.COLUMN_NAME as 列名 , USER_TAB_COLS.DATA_TYPE as 数据类型, USER_TAB_COLS.DATA_LENGTH as 长度, USER_TAB_COLS.NULLABLE as 是否为空,USER_TAB_COLS.COLUMN_ID as 列序号, user_col_comments.comments as 备注 FROM USER_TAB_COLS inner join user_col_comments on user_col_comments.TABLE_NAME=USER_TAB_COLS.TABLE_NAME and user_col_comments.COLUMN_NAME=USER_TAB
MySQL 获取表名: 用“show tables”命令。在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来。其中“db”是指你的数据库的名称,比如说Tables_in_productdb。 获取某个表的字段: 用“desc tablename”命令。取得方式和上面类似。 此外,还可用MySQL数据库系统表取得,在information_schema库中有系统中的一些基础性表,比如说TABLES\COLUMNS。但一般情况下,程序只访问本库中的表,所以不建议采用这种方式取得。
2、SQLSERVER SQLSERVER中也有数据库系统表,有相应权限时可以直接访问。 获取表名: 通过查询sysobjects表取得,它记录了系统中的对象。具体的访问方式如下: select name from sysobjects where xtype='U'
其中name得到的即表名。 XType='U':表示所有用户表; XType='S':表示所有系统表。
获取某个表的字段: SystemColumns表记录了数据库中的列信息。具体调用方式: Select Name from SysColumns Where id=Object_Id('test')
3、ORACLE 获取表名: Oracle的user_talbes用于记录了用户表信息。 select * from user_tables
获取某个表的字段: USER_TAB_COLS中记录了用户表的列信息。
SELECT USER_TAB_COLS.TABLE_NAME as 表名, USER_TAB_COLS.COLUMN_NAME as 列名 , USER_TAB_COLS.DATA_TYPE as 数据类型, USER_TAB_COLS.DATA_LENGTH as 长度, USER_TAB_COLS.NULLABLE as 是否为空,USER_TAB_COLS.COLUMN_ID as 列序号, user_col_comments.comments as 备注 FROM USER_TAB_COLS inner join user_col_comments on user_col_comments.TABLE_NAME=USER_TAB_COLS.TABLE_NAME and user_col_comments.COLUMN_NAME=USER_TAB
import java.sql.*;
import java.util.*;
import com.microsoft.*;
public class SQLServerTest {
private static ArrayList al= new ArrayList();
public static void main(String[] args) {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://SaisanSvr:1433;DatabaseName=GenKa";
String user="sa";
String password="111";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="select * from test1";
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
//获取字段名
String sName = rsmd.getColumnName(1);
while(rs.next()) {
System.out.println(rs.getString("test"));
}
}catch(Exception e){
e.printStackTrace();
}
}
} 用DriverManager.getConnection()得到connect,
用connect.getMetaData()得到 DatabaseMetaData,
用 DatabaseMetaData.getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)得到相应字段的ResultSet。
用ResultSet.getMetaData() 得到ResultSetMetaData。
用ResultSetMetaData.getColumnType()得到一个int,在Types类中找到数据类型。
楼上的写的Good,学习一下