用select * from tabname where 1=2
然后利用rs.getMetaData();来获得列的信息!================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]

解决方案 »

  1.   

    http://www.csdn.net/Expert/TopicView1.asp?id=444354
      

  2.   

    ResultSetMetaData类的getColumnTypeName方法
      

  3.   

    ResultSetMetaData类的getColumnTypeName方法
      

  4.   

    给一个例子慢慢看吧:)import java.io.*;
    import java.util.*;
    import java.sql.*;public class JDBCBean {    String classname ; // JDBC driver class
        String url ; 
        String username ;
        String password ;
        String query ;  // the SQL statement.
        int rows, cols; // the number of rows and columns of the result.
        Vector result;    public void setClassname(String classname) {
    this.classname = classname;
        }    public String getClassname() {
    return classname;
        }    public void setUrl(String url) {
    this.url = url;
        }    public String getUrl(){
    return url;
        }    public void setUsername(String username) {
    this.username = username;
        }    public String getUsername() {
    return username;
        }    public void setPassword(String password) {
    this.password = password;
        }    public String getPassword() {
    return password;
        }    public void setQuery(String query) {
    this.query = query;
        }    public String getQuery() {
    return query;
        }    protected void go() 
    throws ClassNotFoundException, SQLException
        { // Load the JDBC driver
    Class.forName(classname); 

    // get the connection to the database
    Connection con = DriverManager.getConnection(url, username, 
         password);
        
    // create and execute the query
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    ResultSetMetaData rsmd = rs.getMetaData();

    cols = rsmd.getColumnCount();
    rows = 0;
    result = new Vector();

    String s[] = new String[cols];
    for (int i=1; i<=cols; i++) {
        s[i-1] = rsmd.getColumnLabel(i) ;
    }
    result.addElement(s);
    rows ++;

    // for entire data
    while (rs.next()) {
        s = new String[cols];
        // for one row
        for (int i=1; i<=cols; i++) {
    s[i-1] = helper(rs, rsmd.getColumnType(i), i);
        }
        result.addElement(s);
        rows ++;
    }
        }    public static void main (String[] args) 
        {
    JDBCBean jdbcBean = new JDBCBean();
    String classname = "com.imaginary.sql.msql.MsqlDriver";
    //String url = "jdbc:msql://gaby.eng:4333/demo";
    String url = "jdbc:msql://ridgetop.eng:1114/test";
    String username = "lfu";
    String password = "password";
    //String query = "select * from details";
    String query = "select * from table1"; jdbcBean.setClassname(classname);
    jdbcBean.setUrl(url);
    jdbcBean.setUsername(username);
    jdbcBean.setPassword(password);
    jdbcBean.setQuery(query);

    try {
        jdbcBean.go();
        System.out.println("Seems okay");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
        }

        //
        // Result methods
        //    public int getColumnCount() {
    return cols;
        }    public int getRowCount() {
    return rows;
        }    public String getColumnLabels(int col) {
    String[] s = (String[])result.firstElement();
    return s[col];
        }    public String getCell(int col, int row) {
    String[] s = (String[])result.elementAt(row);
    return s[col];
        }
        protected String helper (ResultSet rs, int dataType, int col) 
    throws SQLException
        {
    String retVal = null;
    Integer intObj; // ask for data depending on the datatype
    switch(dataType) {
    case Types.DATE:
        java.sql.Date date = rs.getDate(col);
        retVal = date.toString();
        break;
    case Types.TIME:
        java.sql.Time time = rs.getTime(col);
        retVal = time.toString();
        break;
    case Types.TIMESTAMP:
        java.sql.Timestamp timestamp = rs.getTimestamp(col);
        retVal = timestamp.toString();
        break;
    case Types.CHAR:
    case Types.VARCHAR:
    case Types.LONGVARCHAR:
        retVal = rs.getString(col);
        break;
    case Types.NUMERIC:
    case Types.DECIMAL:
        java.math.BigDecimal numeric = rs.getBigDecimal(col, 10);
        retVal = numeric.toString();
        break;
    case Types.BIT:
        boolean bit = rs.getBoolean(col);
        Boolean boolObj = new Boolean(bit);
        retVal = boolObj.toString();
        break;
    case Types.TINYINT:
        byte tinyint = rs.getByte(col);
        intObj = new Integer(tinyint);
        retVal = intObj.toString();
        break;
    case Types.SMALLINT:
        short smallint = rs.getShort(col);
        intObj = new Integer(smallint);
        retVal = intObj.toString();
        break;
    case Types.INTEGER:
        int integer = rs.getInt(col);
        intObj = new Integer(integer);
        retVal = intObj.toString();
        break;
    case Types.BIGINT:
        long bigint = rs.getLong(col);
        Long longObj = new Long(bigint);
        retVal = longObj.toString();
        break;
    case Types.REAL:
        float real = rs.getFloat(col);
        Float floatObj = new Float(real);
        retVal = floatObj.toString();
      break;
    case Types.FLOAT:
    case Types.DOUBLE:
      double longreal = rs.getDouble(col);
      Double doubleObj = new Double(longreal);
      retVal = doubleObj.toString();
      break;
    case Types.BINARY:
    case Types.VARBINARY:
    case Types.LONGVARBINARY:
      byte[] binary = rs.getBytes(col);
      retVal = new String(binary);
      break;
    }
    return retVal;    }

    }
      

  5.   

    例子好长啊,还是没太明白
    我的意思是:比如说表 tab1(id,name,address)
    我现在知道了有tab1表,但我不知道它有id,name,address这些列
    我是需要得到id,name,address的数据类型,但主要是想要得到列名id,name,address,应为我在查询里面要用到
    能否给我说的具体点,最好还简单点。很菜,没办法