在写程序时,遇到一个问题,查了资料才知道区别,算是找到了解决办法。
现象:如果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)
指示在指定的列上进行写操作是否可以获得成功。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shuchengzhang/archive/2008/12/27/3621364.aspx
分享到:
相关推荐
3. getColumnLabel(int column):获取用于打印输出和显示的指定列的建议标题。 4. getColumnDisplaySize(int column):指示指定列的最大标准宽度,以字符为单位。 5. getColumnType(int column):检索指定列的SQL...
* getColumnName(int):返回列序号为 int 的列名。 * getColumnLabel(int):返回此列暗含的标签。 * isCurrency(int):如果此列包含带有货币单位的一个数字,则返回 true。 * isReadOnly(int):如果此列为只读,则...
2. 获取列名:通过调用getColumnLabel(int column)或getColumnName(int column)方法,可以获取指定列的名称或标签。这两个方法的区别在于,ColumnLabel通常对应于列的别名,而ColumnName则是数据库中实际的列名。 3...
2. `getColumnName(int column)`:返回指定列的名称,这对于在程序中引用特定列非常有用。 3. `getColumnLabel(int column)`:获取列的建议标题,通常与用户界面显示有关。 4. `getColumnType(int column)`:返回...
4. **获取字段别名**:`getColumnLabel(int column)` 5. **获取字段类型**:`getColumnType(int column)` 6. **获取字段长度**:`getColumnDisplaySize(int column)` 7. **获取字段个数**:`getColumnCount()` **...
我们可以使用 getColumnCount() 方法来获取列数,然后使用 getColumnLabel() 方法来获取每个列的名称。 将数据写入 CSV 文件 在获取了数据库数据和元数据信息后,我们可以将数据写入到 CSV 文件中。这里我们使用了...
import java.sql.*; import java.util.*; /** * * Title: 数据库工具类 ... * Description: 将大部分的数据库操作放入这个类中, 包括数据库连接的建立, 自动释放等. ... * All database resources created by this ...
if (rsMetaData.getColumnLabel(columnIndex).equalsIgnoreCase(columnName)) { field.setAccessible(true); field.set(entity, rs.getObject(columnName)); } } entityList.add(entity); } return ...
ResultSetMetadata提供了多种方法来获取数据库字段信息,例如getColumnCount()、getColumnLabel()等。例如: ```java ResultSetMetaData rsmd = resultSet.getMetaData(); int columnsCount = rsmd.getColumnCount...
buf.append(rsmd.getColumnLabel(i)); } buf.append("\n"); while (results.next() && rowcount ) { for (i = 1; i ; i++) { if (i > 1) buf.append(","); buf.append(results.getString(i)); } buf.append...
System.out.print(meta_data.getColumnLabel(i_col) + "\t"); } System.out.println(); // 遍历结果集 while (rs.next()) { for (int i_col = 1; i_col (); i_col++) { System.out.print(rs.getString(i_col...
String columnName = rsmd.getColumnLabel(i); // 使用元数据 } ``` ### 结论 以上内容概述了SQL的基础知识点以及如何使用Java(通过JDBC)与SQL数据库进行交互。这些知识点非常适合初学者学习,涵盖了创建表...
System.out.print(rsmd.getColumnLabel(i)); if (i ) { System.out.print(", "); } } System.out.println(""); boolean more = rs.next(); while (more) { for (int i = 1; i ; i++) { System.out.print...
out.print("<th>" + metadata.getColumnLabel(i+1) + "</th>"); out.println("</tr>"); // Now loop through the "rows" of the result set while(results.next()) { // For each row, display the the...
strOut += "<td>" + rsmd.getColumnLabel(i) + "</td>"; } strOut += "</tr>"; boolean more = rs.next(); while (more) { strOut += "<tr>"; for (int i = 1; i ; i++) { strOut += "<td>" + rs.getString...
System.out.print("\t"+ metadata.getColumnLabel(i + 1)); } System.out.println("\n----------------------------------"); while (rs.next()) { for (int i = 0; i (); i++) { Object value = rs....
System.out.print(metaData.getColumnLabel(i_col) + "\t"); } System.out.println(); while (resultSet.next()) { for (int i_col = 1; i_col (); i_col++) { System.out.print(resultSet.getObject(i_col) ...
System.out.print(meta_data.getColumnLabel(i_col) + " "); } while (rs.next()) { for (int i_col = 1; i_col (); i_col++) { System.out.print(rs.getString(i_col) + " "); } System.out.println(); } ``` ...
- 通过`getColumnLabel()`方法获取列别名或名称。 - 将每条记录封装为一个Map,然后存储到List中。 #### 二十五、Java反射技术入门 - **概念**:反射是在运行时分析类和对象的能力。 - **应用**:使用反射技术...