- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了以前从未见过的 SAS jdbc 驱动程序的问题,并且想知道正确的 JDBC 行为是什么。
假设我有一些ResultSetMetaData
:
metadata.getColumnName(index) -> col1
metadata.getColumnLabel(index) -> Column1
这将是运行此查询时的 SQL 结果:
SELECT col1 AS Column1
当从ResultSet
获取值时,我希望使用这个:
rs.getString("Column1")
但是,我似乎必须使用:
rs.getString("col1")
这是可以预料到的吗?我的假设哪里错了?或者这是特定于驱动程序的行为?
最佳答案
在 JDBC 中,您可以通过列标签(别名)而不是列名称来检索结果集的值。在您问题的代码中,检索值的正确方法是使用 rs.getString("Column1")
(或 - 因为处理时不区分大小写 - rs.getString("COLUMN1")
)
这已记录在 API 中,如所有 String
基于 setter/getter 有以下文档:
Parameters:
columnLabel
- the label for the column specified with the SQLAS
clause. If the SQLAS
clause was not specified, then the label is the name of the column
从历史上看,JDBC 3 及更早版本并没有清楚地区分列标签和列名称,直到今天 - 导致驱动程序要求您通过列名称获取,或者允许您通过列名称或标签获取两者,或从 ResultSetMetaData.getColumnLabel(int)
返回列名或 ResultSetMetaData.getColumnName(int)
中的列标签,或者有配置选项来设置要使用的行为。
关于java - 使用 getColumnName() 或 getColumnLabel() 作为 getString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017204/
我正在为 TableModel 使用一个新类,它扩展了 AbstractTableModel,但是当我尝试添加标题行时,它没有显示。这是代码: public class StudentTableMo
我正在使用 ojdbc7.jar 从 Java 连接到 oracle。对于带有别名的查询,当我做 getColumnName() 时和 getColumnLabel()的 ResultSetMetaD
我使用下面的代码来测试列是否存在: public static boolean isColumnExists(String tableName, String columnName) {
我正在使用库 LinqToExcel 读取我的 mvc4 项目中的 excel 文件。我的问题是当我尝试阅读第 4 行的标题时...我该怎么做? 在项目中,存在一个返回所有列名的函数,但我想这些列需要
ResultSetMetaData.getColumnLabel 和有什么区别?和 ResultSetMetaData.getColumnName ? 标签:获取指定列的建议标题以用于打印输出和显示。
我正在尝试从下面的查询中获取列名, SELECT category as c1, forecast_2016, category, rowcount, item
我想获取列的表标签,如在 mysql 中显示的字符串。像这样 但是,当我使用 getColumnName 时,结果发现返回的字符串和下面的字符串之间存在一些差异。像这样: 但是当我调试时它在eclip
我正在使用 Silk4J 自动化测试。对于SapTree [MicroFocus]类,有方法getColumnHeaders() [Microfocus] , getColumnNames() [Mi
我的查询如下: select a "Column A" from table 我正在使用 ResultSetMetaData metaData = rs.getMetaData(); metaData
我正在尝试编写一个 JTable,它从 ResultSet 获取数据并使用它来创建一个动态大小的表,其中包含来自 ResultSet 的适当的列名和行数据值,但我无法让 JDBC 获取列名对我来说是动
本文整理了Java中com.tc.admin.common.XObjectTableModel.getColumnName()方法的一些代码示例,展示了XObjectTableModel.getCol
我遇到了以前从未见过的 SAS jdbc 驱动程序的问题,并且想知道正确的 JDBC 行为是什么。 假设我有一些ResultSetMetaData: metadata.getColumnName(in
当我有类似这样的查询结果时: select col as newName from table; 然后我(用 java)做: rs.getMetaData().getColumnName(i) 它返回
我正在使用 JSTL SQL 标记库从 JSP 中执行小型 SQL 查询。 我通常使用 rowsByIndex 在 EL 中检索查询结果,然后迭代返回的集合: ${row[0]}, ${ro
使用 Java JDBC,我想收集从 SQL Select 查询返回的信息。 如果我触发以下 SQL 查询: SELECT col1 AS 'Field1', col2 AS 'Field2' FRO
我正在使用 linqToExcel dll 从中读取 csv 文件并查询 csv 文件中的数据。我还需要来自 csv 的列名 (Header)。 当我尝试根据 document mentioned 运
我想知道是否可以在 moveToNext() 之前调用 getType() 和 getColumnNames()。 基本上,我正在尝试编写以下辅助函数: public static int getC
我是一名优秀的程序员,十分优秀!