根据介绍,前者应该取得字段名,而后者是列标题。但我试验结果两者却完全相同,是因为mysql(1.5)的jar原因吗?形如"select email as k from ..", 这样的写法,getColumnName()和getColumnLabel()都返回"k",但我想得到的值是"email",怎么办呢?

解决方案 »

  1.   

     ResultSetMetaData 是对结果进行处理的吧
    从数据库读出的结果你给他起的别名就是k,那怎么得到那个啊?
    你AS K去了不就行了吗?
      

  2.   


    我希望获得实际的字段名,而不是as后的别名。不然getColumnName()和getColumnLabel()有什么区别呢?
      

  3.   

    是的,你的 sql 文的问题。
    select email from ..这样可以得到email。
      

  4.   

    汗,
    自然我是故意这样写的,但,就是希望在这种情况下也能获得实际字段名,不然getColumnName()和getColumnLabel()有什么区别呢?
      

  5.   

    getColumnLabel
    String getColumnLabel(int column)
                          throws SQLException获取用于打印输出和显示的指定列的建议标题。 参数:
    column - 第一列是 1,第二个列是 2,…… 
    返回:
    建立列标题 
    抛出: 
    SQLException - 如果发生数据库访问错误--------------------------------------------------------------------------------getColumnName
    String getColumnName(int column)
                         throws SQLException获取指定列的名称。 参数:
    column - 第一列是 1,第二个列是 2,…… 
    返回:
    列名称 
    抛出: 
    SQLException - 如果发生数据库访问错误
    当你执行一个SQL文:
    如果sql="select id+55, age+60 add_age, salary from account"getColumnName(1)和getColumnName(2) 是取不到值的而此时用 getColumnLabel 可以取得 id+55 。而对于 salary 
    则可以用getColumnName 和 getColumnLabel 取得。
      

  6.   

    不然,
    我使用getColumnName()返回的仍旧是id+55等,和getColumnLabel()完全相同
      

  7.   

    不过无论如何,我就想取得"email"这个实际字段名,
    难道在这种情况下,没法获取到吗?
      

  8.   

    不过无论如何,我就想取得"email"这个实际字段名,
    难道在这种情况下,没法获取到吗?
      

  9.   

    这个是看数据库的支持吧,
    只知道
    sybase 中
    getColumnLabel(1)获取到的是 ID 
    getColumnName(1) 获取到的是 user_ID 。mysql中 又都是ID