ResultSet列未在查询中明确命名

时间:2013-09-22 06:53:41

标签: java jdbc resultset

阅读this官方文档:

  

对于未在查询中明确命名的列,最好是   使用列号。如果使用列名,程序员应该   注意保证他们唯一地提到预期的   列,可以通过SQL AS子句得到保证。

查询中未明确命名的列是什么? 这对他们意味着什么?

谢谢,

确实是它

3 个答案:

答案 0 :(得分:1)

计算/表达式的列具有任意名称,例如

select max(salary) from employee

如果您检查了JDBC列名称,它通常被称为与表达式相同 - 即在行集中,该列可能被称为“max(salary)”,但它是特定于数据库且不可靠的。

您有两种选择:

  1. 使用列号(从一开始),例如rowset.get(1)
  2. 在查询中命名列
  3. select max(salary) as max_salary from employee
    

    我更喜欢第二种选择 - 它更不容易理解。

答案 1 :(得分:0)

count(*)之类的列或lower()之类的函数结果未在查询中明确命名。

答案 2 :(得分:0)

如果你有

 select count(*) from employees // query 1

现在除非你做

,否则你不能使用rs.getString(columnLabel)

选择count(*)作为员工总数

 rs.getString("total Number") unless you do

因此使用

是有意义的
  getString(int columnIndex) with query 1 instead of rs.getString(columnLabel)

以上示例下面的句子完全有道理

  

对于未在查询中明确命名的列,最好是   使用列号。如果使用列名,程序员应该   注意保证他们唯一地提到预期的   列,可以通过SQL AS子句得到保证。