java.sql.ResultSetMetaData.getColumnLabel和getColumnName的区别

如果将ResultSet的结果映射到HashMap中,要使用getColumnLabel,而不要用getColumnName,这样可提高程序的健壮性

理由:

getColumnName返回的是sql语句中field的原始名字。
getColumnLabel是field的SQL AS的值(Alias--别名)。
比如:select
          a.name as name,
          a.description as description,
          b.description as relatedDescription
         from a,b where ...
此时,getColumnName(3) == "description";而getColumnLabel(3) == "relatedDescription"。

API:

getColumnLabel

String getColumnLabel(int column)
                      throws SQLException
Gets the designated column's suggested title for use in printouts and displays. The suggested title is usually specified by the SQL AS clause. If a SQL AS is not specified, the value returned from getColumnLabel will be the same as the value returned by the getColumnName method.

 

Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the suggested column title
Throws:
SQLException - if a database access error occurs

 

getColumnName

String getColumnName(int column)
                     throws SQLException
Get the designated column's name.

 Parameters:

column - the first column is 1, the second is 2, ...
Returns:
column name
Throws:
SQLException - if a database access error occurs

 

http://blog.sina.com.cn/s/blog_735ef3790100qmf3.html 

时间: 2024-09-20 10:50:49

java.sql.ResultSetMetaData.getColumnLabel和getColumnName的区别的相关文章

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结

java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和总结   java.lang.Object  ....|__java.util.Date  ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time [父类]java.util.Date日期格式为:年月日时分秒  [子类]java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据]  [子类

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password

问题描述 连接MySql数据库,出现java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)的问题,用户名是root,密码是123456,这是我自己设置的密码,为什么连接失败呢???我在MySql中的可视化软件中,测试连接,连接成功,可是为什么在Javaweb中连接数据库不成功呢????比较急!!求解!! 解决方案 本帖最后由 PsMuJIngHua 于 2013-02-02 07:51:44 编

java中public class与class的区别详解

以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下   在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致.范例:定义一个类(文件名称为:Hello.java) 复制代码 代码如下: public class HelloDemo{    //声明一个类,类名称的命名规范:所有单词的首字母大写     public s

java sql xception-java.sql.SQLException问题

问题描述 java.sql.SQLException问题 代码: public static void main(String[] args) { // TODO Auto-generated method stub //定义需要的对象 PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; try { //初始化我们的对象 //1.加载驱动 Class.forName("com.microsoft.sqlserver.

java语法-Java中迭代和循环有什么区别和联系

问题描述 Java中迭代和循环有什么区别和联系 Java中迭代和循环有什么区别和联系 都是什么条件语句有循环和迭代啊 解决方案 迭代是通过循环实现的,但是循环不一定是迭代. 迭代一般是指对集合的遍历. 解决方案二: 另外迭代也可以不用循环,比如如下代码: void showdata(RecordSet rs) { if (!rs.hasNext()) { rs.moveNext(); print(rs.getInt(0)); showdata(rs); } } 这段代码用了递归,就没有用循环 解

请问下java中FileOutputStream,PrintStream中的区别

问题描述 请问下java中FileOutputStream,PrintStream中的区别 请问下俩个输出流的区别,什么时候用哪个流?是否可以这么理解,FileOutputStream是关联字节文件的基础?PrintStream只是其附加功能,就像BufferedOutputStream一样? 解决方案 public class FileOutputStream extends OutputStream public class PrintStream extends FilterOutputS

String类型怎么装换为java.sql.Date类型

问题描述 String类型怎么装换为java.sql.Date类型 在java中如何将String类型转换成java.sql.Date类型 解决方案 问题出在你的格式化字符串上.参考官网文档Class SimpleDateFormat格式化字符串是有保留字符的,每个字符代表不同的意义,区分大小写.大写的M表示的是月份,不是说你用在的时间的位置它就表示时间了.所以把时间格式化字符串改成yyyy-MM-dd HH:mm:ss,就能正确输出了. 解决方案二: 在java中如何将String类型转换成j

java可变类和不可变类区别中,对于不可变类克隆的问题

问题描述 java可变类和不可变类区别中,对于不可变类克隆的问题 import java.util.Date; public final class BrokenPerson { private String firstName; private String lastName; private Date dob; public BrokenPerson( String firstName, public BetterPerson( String firstName, String lastNa

Java语言----三种循环语句的区别介绍_java

第一种:for循环 循环结构for语句的格式:      for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体;   } eg: class Dome_For2{ public static void main(String[] args) { //System.out.println("Hello World!"); //求1-10的偶数的和 int sum = 0; for (int i = 1;i<=10 ; i++ ) { if (i%2 ==0) { //