mysql别名取不出值(getColumnLabel和getColumnName的区别)
2009-11-30 17:10
507 查看
本文转载自:http://203.208.39.132/search?q=cache:y8EthTZt3rEJ:zhangjiansheng.blogspot.com/2007/03/getcolumnlabel-vs-getcolumnname.html+getcolumnname+getcolumnlabel&cd=1&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy2_ZlwbEzJNJkP3HI7d-I9VIqJMRrQ
在写程序时,遇到一个问题,查了资料才知道区别,算是找到了解决办法。
现象:如果sql="select id+1, age+100 test_age, salary from account",使用ResultSetMetaData的getColumnName(1)和getColumnName(2)是取不出内容的,结果为空,但是使用getColumnLabel则可以,上述例子中,getColumnLabel(1)可以得到"id+1",getColumnLabel(2)可以得到"test_age",getColumnName(3)和getColumnLabel(3)得到的结果均为salary。此测试均在mysql+tomcat+jdk1.5环境中测试。
解决:用getColumnLabel代替getColumnName即可。
下述资料来自:SUN JAVA
--------------------------
ResultSetMetaData
String getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。
String getColumnName(int column)
获取指定列的名称。
--------------------------
方法摘要
String getCatalogName(int column)
获取指定列的表目录名称。
String getColumnClassName(int column)
如果调用方法 ResultSet.getObject 从列中检索值,则返回构造其实例的 Java 类的完全限定名称。
int getColumnCount()
返回此 ResultSet 对象中的列数。
int getColumnDisplaySize(int column)
指示指定列的最大标准宽度,以字符为单位。
String getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。
String getColumnName(int column)
获取指定列的名称。
int getColumnType(int column)
检索指定列的 SQL 类型。
String getColumnTypeName(int column)
检索指定列的数据库特定的类型名称。
int getPrecision(int column)
获取指定列的小数位数。
int getScale(int column)
获取指定列的小数点右边的位数。
String getSchemaName(int column)
获取指定列的表模式。
String getTableName(int column)
获取指定列的名称。
boolean isAutoIncrement(int column)
指示是否自动为指定列进行编号,这样这些列仍然是只读的。
boolean isCaseSensitive(int column)
指示列的大小写是否有关系。
boolean isCurrency(int column)
指示指定的列是否是一个哈希代码值。
boolean isDefinitelyWritable(int column)
指示在指定的列上进行写操作是否明确可以获得成功。
int isNullable(int column)
指示指定列中的值是否可以为 null。
boolean isReadOnly(int column)
指示指定的列是否明确不可写入。
boolean isSearchable(int column)
指示是否可以在 where 子句中使用指定的列。
boolean isSigned(int column)
指示指定列中的值是否带正负号。
boolean isWritable(int column)
指示在指定的列上进行写操作是否可以获得成功。
getColumnLabel 是显示你现在的列的名字,你可能取个别名~这时候显示别名,比如 name as MYNAME,这时候显示后者
getColumnName 这个始终都是数据库列的名字!一直显示name
getColumnLabel(int)返回该int所对应的列的显示标题 getColumnName(int)返回该int所对应的列的在数据库中的名称
在写程序时,遇到一个问题,查了资料才知道区别,算是找到了解决办法。
现象:如果sql="select id+1, age+100 test_age, salary from account",使用ResultSetMetaData的getColumnName(1)和getColumnName(2)是取不出内容的,结果为空,但是使用getColumnLabel则可以,上述例子中,getColumnLabel(1)可以得到"id+1",getColumnLabel(2)可以得到"test_age",getColumnName(3)和getColumnLabel(3)得到的结果均为salary。此测试均在mysql+tomcat+jdk1.5环境中测试。
解决:用getColumnLabel代替getColumnName即可。
下述资料来自:SUN JAVA
--------------------------
ResultSetMetaData
String getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。
String getColumnName(int column)
获取指定列的名称。
--------------------------
方法摘要
String getCatalogName(int column)
获取指定列的表目录名称。
String getColumnClassName(int column)
如果调用方法 ResultSet.getObject 从列中检索值,则返回构造其实例的 Java 类的完全限定名称。
int getColumnCount()
返回此 ResultSet 对象中的列数。
int getColumnDisplaySize(int column)
指示指定列的最大标准宽度,以字符为单位。
String getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。
String getColumnName(int column)
获取指定列的名称。
int getColumnType(int column)
检索指定列的 SQL 类型。
String getColumnTypeName(int column)
检索指定列的数据库特定的类型名称。
int getPrecision(int column)
获取指定列的小数位数。
int getScale(int column)
获取指定列的小数点右边的位数。
String getSchemaName(int column)
获取指定列的表模式。
String getTableName(int column)
获取指定列的名称。
boolean isAutoIncrement(int column)
指示是否自动为指定列进行编号,这样这些列仍然是只读的。
boolean isCaseSensitive(int column)
指示列的大小写是否有关系。
boolean isCurrency(int column)
指示指定的列是否是一个哈希代码值。
boolean isDefinitelyWritable(int column)
指示在指定的列上进行写操作是否明确可以获得成功。
int isNullable(int column)
指示指定列中的值是否可以为 null。
boolean isReadOnly(int column)
指示指定的列是否明确不可写入。
boolean isSearchable(int column)
指示是否可以在 where 子句中使用指定的列。
boolean isSigned(int column)
指示指定列中的值是否带正负号。
boolean isWritable(int column)
指示在指定的列上进行写操作是否可以获得成功。
getColumnLabel 是显示你现在的列的名字,你可能取个别名~这时候显示别名,比如 name as MYNAME,这时候显示后者
getColumnName 这个始终都是数据库列的名字!一直显示name
getColumnLabel(int)返回该int所对应的列的显示标题 getColumnName(int)返回该int所对应的列的在数据库中的名称
相关文章推荐
- jdbc-mysql基础 ResultSetMetaData getColumnName getColumnLabel 得到列的名字和别名
- java.sql.ResultSetMetaData.getColumnLabel和getColumnName的区别
- java.sql.ResultSetMetaData.getColumnLabel和getColumnName的区别
- ResultSetMetaData类的getColumnName和getColumnLabel的不同
- Java ResultSetMetaData之getColumnName与getColumnLabel
- getColumnLabel and getColumnName
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题以及error 1406:data too long for column 'name' at row 1
- getColumnLabel VS getColumnName
- getClass()和getSimpleName()的区别和作用
- getElementByID getElementsByName getElementsByTagName的区别和总结
- getElementByID getElementsByName getElementsByTagName的区别和总结
- document.getElementById与getElementByName的区别
- getClass(),forName()和.class的区别
- java中Class对象详解和类名.class, class.forName(), getClass()区别
- mysql对sql中别名引起的Column not found问题
- MySql Query To Get Important Column Properties Of A Table
- getClass()与getSimpleName()的区别
- context.getClass和getPackageName的区别
- 【资料整理】Javascript中getElementsByName()和getElementById()的区别和用法
- GetCurrentDirectory()和GetModuleFileName()函数的区别